APIs mock del Lab 4
# APIs mock del Lab 4
Usa estos mocks para desarrollar y probar la wallet con datos ficticios. Puedes elegir respuestas aprobadas, rechazadas, pendientes y fallas del proveedor. No se mueve dinero ni se conecta con bancos.
## Cómo leer esta guía
Cada sección W1–W6 corresponde a una historia del reto. W1 activa la wallet; W2 confirma pagos; W3 agrega el QR; W4 evita duplicados; W5 resuelve fallas y reversos; W6 comprueba que los registros coincidan.
Un endpoint es una ruta de la API. `GET` consulta datos y `POST` crea una operación o ejecuta una acción. Todas las rutas de esta guía se agregan a la URL base del grupo. Por ejemplo, para el Grupo 1, `GET /payments` significa `GET https://bcp-wallet-mock.yefri.workers.dev/groups/1/payments`.
Los campos `{id}` se reemplazan por el identificador devuelto por la API, sin las llaves. Guarda los IDs de la wallet, pago, QR, reverso y evento por separado. Cada ruta espera el ID del recurso que nombra.
## Probar con Swagger UI
Selecciona tu grupo arriba y pulsa Abrir Swagger UI. Se abre una pestaña independiente dedicada a Swagger UI. La documentación permanece en esta pantalla. El contrato del grupo se carga directamente, separado en W1–W6. Despliega una operación, pulsa Try it out, completa los datos y luego Execute para ver la respuesta real del mock. No necesitas copiar el JSON ni usar un editor.
- [Abrir Swagger UI](/dia-04/mocks/swagger.html)
Swagger UI permite enviar peticiones desde el navegador. OpenAPI es el archivo JSON que describe las rutas, los campos y los códigos HTTP. Usa el contrato de tu grupo para que las pruebas apunten a sus datos. El visor de flujos explica los escenarios, pero no ejecuta llamadas.
## API publicada
- [Comprobar disponibilidad de la API](https://bcp-wallet-mock.yefri.workers.dev/health)
- [Abrir OpenAPI del servicio publicado](https://bcp-wallet-mock.yefri.workers.dev/openapi.json)
- [Explorar flujos por historia y escenario](/dia-04/mocks/flows.html)
- [Descargar servicio local y demo opcionales](/dia-04/mocks/wallet-mock.zip)
No necesitas instalar Python para consumir las APIs publicadas. Selecciona tu grupo en el menú de arriba. Hay exactamente ocho grupos, del 1 al 8, con URLs fijas. Todos los integrantes del mismo grupo comparten pagos, saldo, eventos y conciliación. Reiniciar un grupo no afecta a los demás.
## Probar desde Postman o tu frontend
1. Selecciona Grupo 1 hasta Grupo 8 y copia la URL base que aparece, por ejemplo `https://bcp-wallet-mock.yefri.workers.dev/groups/1`.
2. Importa el OpenAPI de tu grupo en Postman o Swagger Editor. Su servidor ya apunta a la URL fija de ese grupo.
3. Envía `POST {URL_BASE}/payments` con encabezados `Content-Type: application/json` e `Idempotency-Key: prueba-001`.
4. Usa este cuerpo: `{"walletId":"wallet-demo","recipient":"contact-demo","amountCents":1500,"scenario":"APPROVED"}`.
5. Consulta `GET {URL_BASE}/control/events` y copia el `id` del evento del pago.
6. Envía `POST {URL_BASE}/callbacks/payments` con `{"eventId":"ID_DEL_EVENTO"}`.
7. Consulta `GET {URL_BASE}/payments` para ver el pago aprobado. Cambia a `REJECTED` con una nueva operación para probar el rechazo.
Consulta `GET https://bcp-wallet-mock.yefri.workers.dev/groups` para ver los ocho grupos con sus campos `groupId`, `name`, `baseUrl` y `openapiUrl`. No se crean sesiones aleatorias ni grupos adicionales. El servicio tiene CORS habilitado para aplicaciones web, sin cookies ni inicio de sesión de GitHub.
Las seis historias comparten 27 rutas y 28 operaciones del mock. El servicio remoto agrega el listado de los ocho grupos. El contrato documenta entradas, códigos HTTP y campos de respuesta. La referencia al final explica cada operación, sus efectos y sus errores.
## Cómo se confirma un pago
Crear un pago y confirmar su resultado son dos pasos distintos. `POST /payments` suele responder `202` con el pago en `PENDING`. En ese momento hay una reserva de saldo. La aplicación aún debe mostrar que el pago está pendiente.
El campo `scenario` elige qué hará el proveedor simulado. `APPROVED` genera un resultado exitoso en el proveedor, pero la wallet lo confirma cuando recibe el evento. Un callback es la llamada que entrega ese resultado a la wallet.
Para simular esa entrega, consulta `GET /control/events`, identifica el evento de tu pago y envía su `id` como `eventId` a `POST /callbacks/payments`. También puedes usar `POST /control/events/{id}/deliver`. Son dos formas de entregar el mismo evento; basta con una.
Después consulta `GET /payments/{id}`. Muestra el comprobante cuando el pago esté en `SUCCEEDED`. Para un resultado rechazado verás `REJECTED`. Si el evento no llega, W5 explica cómo consultar al proveedor.
## Elegir una historia
Cada historia tiene su propia página con el flujo, las comprobaciones y la referencia de sus APIs.
- [W1 · Registro y activación](/dia-04/mocks/w1.html)
- [W2 · Pago a contacto](/dia-04/mocks/w2.html)
- [W3 · Pago QR comercio](/dia-04/mocks/w3.html)
- [W4 · Idempotencia y callbacks](/dia-04/mocks/w4.html)
- [W5 · Fallas y reversos](/dia-04/mocks/w5.html)
- [W6 · Conciliación](/dia-04/mocks/w6.html)
- [Controles del mock](/dia-04/mocks/controles.html)
- [Cobertura y límites](/dia-04/mocks/alcance.html)
## Consultas del servicio
### `GET /health`
Comprueba disponibilidad y almacenamiento en memoria. No modifica datos. El servicio raíz remoto incluye enlaces a grupos y OpenAPI; la URL del grupo informa su entorno.
Respuestas HTTP: `200`.
Campos de respuesta: `status`, `storage`, `environment`, `startedAt`, `service`, `groups`, `openapi`.
### `GET /scenarios`
Lista las opciones exactas de scenario para KYC, pagos y alteraciones del reporte. No avanza escenarios ni modifica datos.
Respuestas HTTP: `200`.
Campos de respuesta: `kyc`, `payments`, `settlements`.
### `GET /openapi.json`
Devuelve este contrato. En cloud, el contrato raíz ofrece ocho servidores y el contrato del grupo ofrece solo su URL. Importa el del grupo en Postman o Swagger.
Respuestas HTTP: `200`.
Campos de respuesta: `openapi`, `info`, `paths`, `servers`.
Conectar con las APIs
Selecciona tu grupo. Sus ocho URLs son fijas: todos los integrantes del mismo grupo usan la misma dirección.
Usa estos mocks para desarrollar y probar la wallet con datos ficticios. Puedes elegir respuestas aprobadas, rechazadas, pendientes y fallas del proveedor. No se mueve dinero ni se conecta con bancos.
Cómo leer esta guía
Cada sección W1–W6 corresponde a una historia del reto. W1 activa la wallet; W2 confirma pagos; W3 agrega el QR; W4 evita duplicados; W5 resuelve fallas y reversos; W6 comprueba que los registros coincidan.
Un endpoint es una ruta de la API. GET consulta datos y POST crea una operación o ejecuta una acción. Todas las rutas de esta guía se agregan a la URL base del grupo. Por ejemplo, para el Grupo 1, GET /payments significa GET https://bcp-wallet-mock.yefri.workers.dev/groups/1/payments.
Los campos {id} se reemplazan por el identificador devuelto por la API, sin las llaves. Guarda los IDs de la wallet, pago, QR, reverso y evento por separado. Cada ruta espera el ID del recurso que nombra.
Probar con Swagger UI
Selecciona tu grupo arriba y pulsa Abrir Swagger UI. Se abre una pestaña independiente dedicada a Swagger UI. La documentación permanece en esta pantalla. El contrato del grupo se carga directamente, separado en W1–W6. Despliega una operación, pulsa Try it out, completa los datos y luego Execute para ver la respuesta real del mock. No necesitas copiar el JSON ni usar un editor.
Swagger UI permite enviar peticiones desde el navegador. OpenAPI es el archivo JSON que describe las rutas, los campos y los códigos HTTP. Usa el contrato de tu grupo para que las pruebas apunten a sus datos. El visor de flujos explica los escenarios, pero no ejecuta llamadas.
API publicada
- Comprobar disponibilidad de la API
- Abrir OpenAPI del servicio publicado
- Explorar flujos por historia y escenario
- Descargar servicio local y demo opcionales
No necesitas instalar Python para consumir las APIs publicadas. Selecciona tu grupo en el menú de arriba. Hay exactamente ocho grupos, del 1 al 8, con URLs fijas. Todos los integrantes del mismo grupo comparten pagos, saldo, eventos y conciliación. Reiniciar un grupo no afecta a los demás.
Probar desde Postman o tu frontend
- Selecciona Grupo 1 hasta Grupo 8 y copia la URL base que aparece, por ejemplo
https://bcp-wallet-mock.yefri.workers.dev/groups/1. - Importa el OpenAPI de tu grupo en Postman o Swagger Editor. Su servidor ya apunta a la URL fija de ese grupo.
- Envía
POST {URL_BASE}/paymentscon encabezadosContent-Type: application/jsoneIdempotency-Key: prueba-001. - Usa este cuerpo:
{"walletId":"wallet-demo","recipient":"contact-demo","amountCents":1500,"scenario":"APPROVED"}. - Consulta
GET {URL_BASE}/control/eventsy copia eliddel evento del pago. - Envía
POST {URL_BASE}/callbacks/paymentscon{"eventId":"ID_DEL_EVENTO"}. - Consulta
GET {URL_BASE}/paymentspara ver el pago aprobado. Cambia aREJECTEDcon una nueva operación para probar el rechazo.
Consulta GET https://bcp-wallet-mock.yefri.workers.dev/groups para ver los ocho grupos con sus campos groupId, name, baseUrl y openapiUrl. No se crean sesiones aleatorias ni grupos adicionales. El servicio tiene CORS habilitado para aplicaciones web, sin cookies ni inicio de sesión de GitHub.
Las seis historias comparten 27 rutas y 28 operaciones del mock. El servicio remoto agrega el listado de los ocho grupos. El contrato documenta entradas, códigos HTTP y campos de respuesta. La referencia al final explica cada operación, sus efectos y sus errores.
Cómo se confirma un pago
Crear un pago y confirmar su resultado son dos pasos distintos. POST /payments suele responder 202 con el pago en PENDING. En ese momento hay una reserva de saldo. La aplicación aún debe mostrar que el pago está pendiente.
El campo scenario elige qué hará el proveedor simulado. APPROVED genera un resultado exitoso en el proveedor, pero la wallet lo confirma cuando recibe el evento. Un callback es la llamada que entrega ese resultado a la wallet.
Para simular esa entrega, consulta GET /control/events, identifica el evento de tu pago y envía su id como eventId a POST /callbacks/payments. También puedes usar POST /control/events/{id}/deliver. Son dos formas de entregar el mismo evento; basta con una.
Después consulta GET /payments/{id}. Muestra el comprobante cuando el pago esté en SUCCEEDED. Para un resultado rechazado verás REJECTED. Si el evento no llega, W5 explica cómo consultar al proveedor.
Elegir una historia
Cada historia tiene su propia página con el flujo, las comprobaciones y la referencia de sus APIs.
- W1 · Registro y activación
- W2 · Pago a contacto
- W3 · Pago QR comercio
- W4 · Idempotencia y callbacks
- W5 · Fallas y reversos
- W6 · Conciliación
- Controles del mock
- Cobertura y límites
Consultas del servicio
GET /health
Comprueba disponibilidad y almacenamiento en memoria. No modifica datos. El servicio raíz remoto incluye enlaces a grupos y OpenAPI; la URL del grupo informa su entorno.
Respuestas HTTP: 200.
Campos de respuesta: status, storage, environment, startedAt, service, groups, openapi.
GET /scenarios
Lista las opciones exactas de scenario para KYC, pagos y alteraciones del reporte. No avanza escenarios ni modifica datos.
Respuestas HTTP: 200.
Campos de respuesta: kyc, payments, settlements.
GET /openapi.json
Devuelve este contrato. En cloud, el contrato raíz ofrece ocho servidores y el contrato del grupo ofrece solo su URL. Importa el del grupo en Postman o Swagger.
Respuestas HTTP: 200.
Campos de respuesta: openapi, info, paths, servers.