# SERVICIOS

# LISTA DE SERVICIOS

#### **Dominio:** https://sysqa.shalombus.pe/#/ 

##### *SERVICIOS*:

1. Listar orígenes:

<table border="1" id="bkmrk-ruta%3A-api%2Flistar-ori" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>ruta: api/listar-origen</td></tr><tr><td>Method: POST</td></tr><tr><td>body: {}</td></tr></tbody></table>

**Función: Al ingresar a la página web se ejecuta el servicio para listar todos los orígenes de shalom express habilitados.**

2. Listar destinos:

<table border="1" id="bkmrk-ruta%3A-api%2Flistar-des" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>ruta: api/listar-destino</td></tr><tr><td>Method: POST</td></tr><tr><td>body: {

“ciudad”: "1"

}

</td></tr></tbody></table>

**Función: Al seleccionar un origen, listará todos los destinos que hay en shalom express habilitados.**

3. Listar salidas:

<table border="1" id="bkmrk-ruta%3A-api%2Flistar-sal" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>ruta: api/listar-salidas</td></tr><tr><td>Method: POST</td></tr><tr><td>body:

{

 "idcuidad": "1",

 "idterminal": "22",

 "idcuidadDest": "2",

 "idterminalDest": "32",

 "fechaSalida": "2025-10-22",

 "fechaRegreso": "",

 "horaActual": "18:32:27"

}

</td></tr></tbody></table>

**Función: Al seleccionar un destino y origen, y llenar el campo de fecha de ida o retorno (opcional), listará todas las salidas habilitadas en web.**

4. Listar asientos del bus:

<table border="1" id="bkmrk-ruta%3A-api%2Flistar-bus" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>ruta: api/listar-buses</td></tr><tr><td>Method: POST</td></tr><tr><td>body:

{

 "idsalida": "42391",

 "indicador": "0",

 "indice": "0g",

 "codigo": "HBGFT",

 "tipo": "salida"

}

</td></tr></tbody></table>

**Función: Al seleccionar una salida, listará los asientos del bus de primer piso como del segundo piso.**

5. Bloquear y desbloquear asientos:

<table border="1" id="bkmrk-ruta%3A-api%2Fbloquear-a" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>ruta: api/bloquear-asiento</td></tr><tr><td>Method: POST</td></tr><tr><td>body:

{

 "id": "42391",

 "asiento": "5",

 "user": "100000010",

 "codigo": "HBGFT"

}

</td></tr></tbody></table>

**Función: Bloquear y desbloquear asiento(s)**

6. Buscar salidas disponibles(validacion por back):

<table border="1" id="bkmrk-ruta%3A-api%2Fbuscar-sal" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>ruta: api/buscar-salida</td></tr><tr><td>Method: POST</td></tr><tr><td>body:

{

 "id": "42391"

}

</td></tr></tbody></table>

**Función: Busca la salida mediante su ID y compara con el dia y hora actual si su fecha de salida aun no vence. en caso venza la redirigira para que elija nuevamente otra salida.**

7. Validar la fecha y hora de bloqueo y precio actualizado:

<table border="1" id="bkmrk-ruta%3A-api%2Funlock-asi" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>ruta: api/unlock-asiento-validate</td></tr><tr><td>Method: POST</td></tr><tr><td>body:

{

 "asiento": ",5",

 “salida”:”42391”

}

</td></tr></tbody></table>

**Función: Valida si la fecha y hora de bloqueo es menor a 10 min entonces procedera con el pago del viaje seleccionado. Pero si es mayor devolvera con un “no” como mensaje de respuesta y ya no procederá con el proceso.**

8. Verificar asiento vendido o bloqueado:

<table border="1" id="bkmrk-ruta%3A-api%2Fverificar-" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>ruta: api/verificar-asiento</td></tr><tr><td>Method: POST</td></tr><tr><td>body:

asientos\[0\]\[salida\] : 42392

asientos\[0\]\[asiento\] : 2

asientos\[0\]\[codeventa\] : ‘972M5’

</td></tr></tbody></table>

**Función: verifica si el asiento que el pasajero ha elegido de esa salida ya ha sido pagado o ocupado por otra persona, esa validación es interna, para no generar duplicados de comprobantes ni errores.**

9. Consultar pasajero:

<table border="1" id="bkmrk-ruta%3A-api%2Fconsulta-p" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>ruta: api/consulta-pasajero</td></tr><tr><td>Method: POST</td></tr><tr><td>body:

{

 "codigo": "75844645"

}

</td></tr></tbody></table>

**Función: Verifica que en la BD exista el pasajero, en caso no exista el cliente va a tener que llenar manualmente sus datos para que despues pueda guardarse en la bd.**

10. Consultar pasajero:

<table border="1" id="bkmrk-ruta%3A-api%2Fmonto-asie" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>ruta: api/monto-asientos</td></tr><tr><td>Method: POST</td></tr><tr><td>body:

{

 "asiento": " , 3",

 "salida": "42420",

 "pasajeros": {

 "nombres": \[

 "GIAN PIERO"

 \],

 "apellidos": \[

 "VILLANUEVA GASTELLO"

 \],

 "dni": \[

 "75013406"

 \],

 "tipodocu": \[

 "DNI",

 "DNI",

 "DNI",

 "DNI"

 \],

 "genero": \[

 "M",

 "M",

 "M",

 "M"

 \],

 "fecha": \[

 "31/12/1969"

 \],

 "correo": \[

 "pierovillanueva.g@hotmail.com"

 \],

 "celular": \[

 "994289949"

 \],

 "ruc": \[\],

 "razon": \[\],

 "factura": \[\]

 },

 "tarjeta": {

 "nombres": "Marco Antonio Bohorquez",

 "correo": "antoniob@overskull.pe",

 "tarjeta": "",

 "mes": "",

 "year": "",

 "ccv": "",

 "dni": "75013406",

 "apellidos": "",

 "celular": "",

 "terminos": true,

 "tipoDocumentoTar": "DNI"

 },

 "viajes": {

 "precio": 2,

 "salida": "42420",

 "llegada": "TER.LOS ANDES-HUANCAYO",

 "fecha": "25-11-2025",

 "servicio": "SOFA PREMIUM",

 "asientos": " , 3",

 "headtitleOrigen": "PLAZA NORTE - LIMA",

 "headTerminalOrigen": "PLAZA NORTE - LIMA",

 "headDireccionOrigen": "GRAN TERMINAL TERRESTE PLAZA NORTE",

 "headtitleDestino": "TER.LOS ANDES-HUANCAYO",

 "headTerminalDestino": "TERMINAL LOS ANDES",

 "headDireccionDestino": "AV FERROCARRIL 151(REF. FRENTE AL OPEN PLAZA)",

 "horaSigla": "PM",

 "horaViaje": "22:00",

 "terSubida": "22",

 "terBajada": "32",

 "codeVenta": "E11NR"

 },

 "dni": "75013406"

}

</td></tr></tbody></table>

**Función: Valida enviando la salida o salidas involucradas ya sea solo ida o ida y retorno y retorna un monto que es el monto total de la salida o salidas.**

11. Enviar info a culqi:

<table border="1" id="bkmrk-ruta%3A-api%2Fculqi-ajax" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>ruta: api/culqi-ajax</td></tr><tr><td>Method: POST</td></tr><tr><td>body:

{

 "token": "tkn\_test\_43R3caryNsveGE61",

 "monto": 200,

 "email": "review@culqi.com",

 "cliente": "75013406",

 "celular": "",

 "nombre": "Marco Antonio Bohorquez",

 "apellido": "",

 "device\_finger\_print\_id": null,

 "pasajeros": \[

 "75013406"

 \],

 "salidas": \[

 {

 "salida": "42420",

 "asiento": "3"

 }

 \],

 "force\_3ds": 0,

 "test": 1

}

</td></tr></tbody></table>

**Función: Con esta informacion, culqi valida que la transaccion se haya cobrado exitosamente de la tarjeta y del banco. Aqui devuelve en caso sea fraude o no una autenticacion mas, pero eso ya es un proceso interno de culqi.**

12. Enviar info a culqi con auth 3ds:

<table border="1" id="bkmrk-ruta%3A-api%2Fculqi-ajax-1" style="border-collapse: collapse; width: 100%; height: 88.8px;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr style="height: 29.6px;"><td style="height: 29.6px;">ruta: api/culqi-ajax</td></tr><tr style="height: 29.6px;"><td style="height: 29.6px;">Method: POST</td></tr><tr style="height: 29.6px;"><td style="height: 29.6px;">body:

{

 "token": "tkn\_test\_43R3caryNsveGE61",

 "monto": 200,

 "email": "review@culqi.com",

 "cliente": "75013406",

 "celular": "",

 "nombre": "Marco Antonio Bohorquez",

 "apellido": "",

 "device\_finger\_print\_id": "",

 "pasajeros": \[

 "75013406"

 \],

 "salidas": \[

 {

 "salida": "42420",

 "asiento": "3"

 }

 \],

 "force\_3ds": 1,

 "eci": "05",

 "xid": "AAIBBYNoEwAAACcKhAJkdQAAAAA=",

 "cavv": "AAIBBYNoEwAAACcKhAJkdQAAAAA=",

 "protocolVersion": "2.2.0",

 "directoryServerTransactionId": "f8d17cc2-4d31-48a2-8dd8-e5b4cce3dfa5"

}

</td></tr></tbody></table>

**Función: Con esta informacion, ya culqi valida que no eres fraude y pasara tu transaccion normalmente.**

13. Insertar o actualizar pasajero:

<table border="1" id="bkmrk-ruta%3A-api%2Finsertar-p" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>ruta: api/insertar-pasajero</td></tr><tr><td>Method: POST</td></tr><tr><td>body:

config\[0\]:dni

config\[1\]:insert

dato\[0\]\[tipoDocumento\]:DNI

dato\[0\]\[documento\]:75013406

dato\[0\]\[nombres\]:GIAN PIERO

dato\[0\]\[apellidos\]:VILLANUEVA GASTELLO

dato\[0\]\[sexo\]:M

dato\[0\]\[correo\]:pierovillanueva.g@hotmail.com

dato\[0\]\[telefono\]:994289949

dato\[0\]\[fechaNacimiento\]:1969-12-31

dato\[0\]\[asiento\]:3

dato\[0\]\[documento\_tar\]:75013406

dato\[0\]\[nombres\_tar\]:Marco Antonio Bohorquez

dato\[0\]\[apellidos\_tar\]

compras:1

</td></tr></tbody></table>

**Función: Actualiza o inserta al pasajero para que se proceda con la venta del boleto y lo genere.**

14. Genera un registro de pago antes de enviar a culqi:

<table border="1" id="bkmrk-ruta%3A-api%2Fgenerar-pr" style="border-collapse: collapse; width: 100%; height: 1449.6px;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr style="height: 29.6px;"><td style="height: 29.6px;">ruta: api/generar-previo-pago</td></tr><tr style="height: 29.6px;"><td style="height: 29.6px;">Method: POST</td></tr><tr style="height: 1390.4px;"><td style="height: 1390.4px;">body:

object = charge  
id = chr\_test\_CoNbpl5Nfks3j...  
creation\_date = 1764105869094  
amount = 200  
amount\_refunded = 0  
current\_amount = 200  
installments = 0  
installments\_amount = 0  
currency\_code = PEN  
email = review%40culqi.com  
description = Venta+de+Pasaje+Shalo...

source\[object\] = token  
source\[id\] = tkn\_test\_43R3caryNsve...  
source\[type\] = card  
source\[creation\_date\] = 1764105668988  
source\[email\] = review%40culqi.com  
source\[card\_number\] = 445653\*\*\*\*\*\*1096  
source\[last\_four\] = 1096  
source\[active\] = true

source\[bin\] = 445653  
source\[bin\]\[issuer\] = Bank+of+Fiction  
source\[bin\]\[issuer\_country\] = United+States  
source\[bin\]\[issuer\_website\] = https%3A%2F%2Fwwwr...  
source\[bin\]\[issuer\_country\_code\] = US  
source\[bin\]\[issuer\_phone\] = %2B+(1)+937-859-6260  
source\[bin\]\[object\] = iin  
source\[bin\]\[card\_type\] = Classic  
source\[bin\]\[card\_brand\] = Visa  
source\[bin\]\[card\_level\] = Gold

source\[client\]\[ip\] = 10.230.11.245  
source\[client\]\[device\] = Chrome  
source\[client\]\[country\] = Peru  
source\[client\]\[device\_type\] = escritorio  
source\[client\]\[country\_code\] = PE  
source\[client\]\[device\_fingerprint\] = 47adb8290b8954f6b40...

source\[metadata\] = 0  
source\[token\_charge\_reference\] = chr\_test\_CoNbpl5Nfks3j...

outcome\[type\] = venta\_exitosa  
outcome\[code\] = AUTO0000  
outcome\[merchant\_message\] = La+operaci%C3%B3n+d...  
outcome\[user\_message\] = Su+compra+ha+sido+ex...

fraud\_score = 0.5

antifraud\_details\[object\] = client  
antifraud\_details\[country\_code\] = PE  
antifraud\_details\[first\_name\] = Marco+Antonio+Bohorq...  
antifraud\_details\[last\_name\] = first\_last\_name  
antifraud\_details\[address\] =  
antifraud\_details\[address\_city\] =  
antifraud\_details\[phone\] =

dispute = false  
capture = true  
partial = false  
capture\_date = 1764105869094

reference\_code = 7000000038176  
authorization\_code = 046126  
duplicated = false

metadata\[cliente\] = 75013406  
metadata\[nombre\_cliente\] = Marco+Antonio+Bohorq...  
metadata\[salidas\] = 3  
metadata\[pasajeros\] = 75013406  
metadata\[document\] = 42420

total\_fee = 98  
net\_amount = 102

fee\_details\[fixed\_fee\]\[amount\] = 20  
fee\_details\[fixed\_fee\]\[currency\] = USD  
fee\_details\[variable\_fee\]\[amount\] = 3.8  
fee\_details\[variable\_fee\]\[currency\] = PEN  
fee\_details\[fixed\_fee\]\[amount\] = 90  
fee\_details\[fixed\_fee\]\[currency\] = PEN  
fee\_details\[variable\_fee\]\[amount\] = 344  
fee\_details\[variable\_fee\]\[currency\] = PEN  
fee\_details\[variable\_fee\]\[percentage\] = 8

total\_fee\_taxes = 0  
transfer\_amount = 0  
paid = false  
statement\_descriptor = Shalom+BUS  
transfer\_id = ?

</td></tr></tbody></table>

**Función: inserta un registro de pago antes de mandarlo a culqi, cuando culqi responda con exito o error ahi respondera con un estado y se validara el pago si ha sido procesado correctamente o no.**

15. Crear registro de viaje asociado a boleto:

<table border="1" id="bkmrk-ruta%3A-api%2Fpagar-viaj" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>ruta: api/pagar-viaje</td></tr><tr><td>Method: POST</td></tr><tr><td>body:

config:insert

codeCulqi:BRWSLR

compras:1

dato\[0\]\[ID\_PASAJERO\]:75013406

dato\[0\]\[NOMBRE\_PASAJERO\]:GIAN PIERO

dato\[0\]\[APELLIDO\_PASAJERO\]:VILLANUEVA GASTELLO

dato\[0\]\[ID\_SUBIDA\]:22

dato\[0\]\[ID\_BAJADA\]:32

dato\[0\]\[PASAJE\]:2

dato\[0\]\[ADICIONAL\]:0

dato\[0\]\[TIPOPAGO\]:Deposito

dato\[0\]\[NROOPERA\]:700000038176

dato\[0\]\[ASIENTO\_ESTADO\]:v

dato\[0\]\[ID\_SALIDA\]:42420

dato\[0\]\[ASIENTO\_NRO\]:3

dato\[0\]\[ID\_USERCREA\]:100000010

dato\[0\]\[ID\_TERMVENTA\]:38

dato\[0\]\[TIPOPAGO\_ADICIONAL\]

dato\[0\]\[TIPOPAGO\_PENALIDAD\]

dato\[0\]\[PENALIDAD\]:0

dato\[0\]\[FH\_CREACION\]

dato\[0\]\[TAR\_NOMBRE\]:Marco Antonio Bohorquez

dato\[0\]\[TAR\_APELLIDO\]

dato\[0\]\[TAR\_DNI\]:75013406

dato\[0\]\[CORREO\]:pierovillanueva.g@hotmail.com

dato\[0\]\[HORA\_ESCALA\]:22:00

dato\[0\]\[TELEFONO\]:994289949

dato\[0\]\[TIPO\_VIAJE\]:ida

codigo:E11NR

</td></tr></tbody></table>

**Función: genera el viaje con su boleto asociado.**

16. Enviar correo electronico:

<table border="1" id="bkmrk-ruta%3A-api%2Fenvio-corr" style="border-collapse: collapse; width: 100%; height: 88.8px;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr style="height: 29.6px;"><td style="height: 29.6px;">ruta: api/envio-correoventa</td></tr><tr style="height: 29.6px;"><td style="height: 29.6px;">Method: POST</td></tr><tr style="height: 29.6px;"><td style="height: 29.6px;">body:

nombre:GIAN PIERO VILLANUEVA GASTELLO

codigo:E11NR

email:pierovillanueva.g@hotmail.com

asiento:3

origen:PLAZA NORTE - LIMA

destino:TERMINAL LOS ANDES

fecha:25-11-2025

hora:22:00

precio:2

operacion:700000038176

electronico:https://www.nubefact.com/cpe/aa966efe-eb65-4da5-a712-8872ca8b00c2.pdf

</td></tr></tbody></table>

**Función: Envia el correo al cliente quien hizo la compra.**