# Pagar póliza Buen Viaje Procesa el pago de una póliza/factura de Buen Viaje. Seguridad (pago encriptado v2): - Cifra datos sensibles del medio de pago con JWE (RSA-OAEP-256 + A256GCM) - Firma el JWE con JWS (RS256) usando firmaKid - Envío de nonce único y timestamp UTC (anti-replay) Prerrequisito: obtener la clave pública del servidor: GET /v2/productos/buen-viaje/crypto/publickey/{kid} Endpoint: POST /v2/productos/buen-viaje/pagos Version: 1.0.0 Security: Ocp-Apim-Subscription-Key, x-user-key, x-codigo-mediador ## Request fields (application/json): - `numeroFactura` (string, required) Example: "FAC-2026-001" - `monto` (number, required) Example: 100.5 - `impuesto` (number, required) Example: 18.09 - `moneda` (string, required) ISO 4217 Example: "USD" - `metodoPago` (object, required) - `metodoPago.tipo` (string, required) Enum en snake_case (ej. tarjeta_credito) Example: "tarjeta_credito" - `metodoPago.detalles` (object, required) - `metodoPago.detalles.datosTarjetaCifrados` (object, required) - `metodoPago.detalles.datosTarjetaCifrados.jwe` (string, required) JWE compacto (RSA-OAEP-256 + A256GCM) Example: "" - `metodoPago.detalles.datosTarjetaCifrados.kid` (string, required) kid del servidor (clave pública usada para cifrar) Example: "crt-pago-buen-viaje-pub" - `metodoPago.detalles.datosTarjetaCifrados.nonce` (string, required) GUID único por solicitud (anti-replay) Example: "d3e7e5e8-8a26-4346-9a9c-8e5f8a7a1c1a" - `metodoPago.detalles.datosTarjetaCifrados.timestamp` (string, required) Timestamp ISO-8601 en UTC (con sufijo Z) Example: "2026-01-19T14:35:00Z" - `metodoPago.detalles.datosTarjetaCifrados.firmaJws` (string, required) JWS compacto RS256 firmado sobre el string del JWE Example: "" - `metodoPago.detalles.datosTarjetaCifrados.firmaKid` (string, required) kid de la clave pública del cliente registrada para validar la firma Example: "cliente-bv-firma-001" - `metadatos` (object) Metadatos opcionales (clave/valor) ## Response 201 fields (application/json): - `numeroFactura` (string, required) Example: "FAC-2026-001" - `numeroRecibo` (string) Example: "RC-2026-000123" - `numeroAutorizacion` (string) Example: "4F7A92" - `montoPagado` (number, required) Example: 118.59 - `moneda` (string, required) Example: "USD" - `mensaje` (string, required) Example: "Pago procesado exitosamente" - `fechaTransaccion` (string, required) Example: "2026-01-19T14:35:41Z" - `duracionMs` (integer) Example: 842 ## Response 400 fields (application/json): - `statusCode` (integer, required) Código de estado HTTP que se aplica a este problema Example: 401 - `message` (string, required) Explicación específica y detallada de esta ocurrencia del problema Example: "La fecha de inicio debe ser posterior a la fecha actual" ## Response 401 fields (application/json): - `statusCode` (integer, required) Código de estado HTTP que se aplica a este problema Example: 401 - `message` (string, required) Explicación específica y detallada de esta ocurrencia del problema Example: "La fecha de inicio debe ser posterior a la fecha actual" ## Response 403 fields (application/json): - `statusCode` (integer, required) Código de estado HTTP que se aplica a este problema Example: 401 - `message` (string, required) Explicación específica y detallada de esta ocurrencia del problema Example: "La fecha de inicio debe ser posterior a la fecha actual" ## Response 404 fields (application/json): - `statusCode` (integer, required) Código de estado HTTP que se aplica a este problema Example: 401 - `message` (string, required) Explicación específica y detallada de esta ocurrencia del problema Example: "La fecha de inicio debe ser posterior a la fecha actual" ## Response 409 fields (application/json): - `statusCode` (integer, required) Código de estado HTTP que se aplica a este problema Example: 401 - `message` (string, required) Explicación específica y detallada de esta ocurrencia del problema Example: "La fecha de inicio debe ser posterior a la fecha actual" ## Response 500 fields (application/problem+json): - `statusCode` (integer, required) Código de estado HTTP que se aplica a este problema Example: 401 - `message` (string, required) Explicación específica y detallada de esta ocurrencia del problema Example: "La fecha de inicio debe ser posterior a la fecha actual"