{"openapi":"3.1.0","info":{"title":"RipsCloud API","version":"1.0.0","description":"API v1 de RipsCloud para administrar RIPS ante FEV RIPS y emitir las facturas/notas de salud que los acompañan mediante PahFacturar. El contrato descargable está en [`/doc`](/doc), en OpenAPI 3.1. Use ese archivo para generar un cliente; conserve los `operationId` y los códigos de error.\n\n**Ambiente de producción.** Las facturas y notas se emiten en DIAN y los RIPS van a FEV RIPS de producción.\n\n## Autenticación del integrador\n1. Inicie sesión en el portal con su celular y WhatsApp OTP. Abra **Tokens de acceso personal** (`/settings/tokens`) y cree un PAT con nombre, espacios, permisos y vencimiento (1–365 días). Guarde el token cuando se muestra: el servidor no vuelve a devolver su secreto.\n2. En su integración envíe `Authorization: Bearer <PAT>` y `Accept: application/json`. El PAT comienza con `rc_pat_`; no es un JWT y no debe decodificarse como tal. Los ejemplos nunca contienen un token real.\n3. Consulte `GET /api/v1/me` y `GET /api/v1/me/workspaces`. Use un `workspaceId` autorizado en cada ruta. Los permisos del PAT no sustituyen la membresía ni el rol del usuario: los dos se verifican en cada operación. Un token caducado/revocado o una membresía retirada deja de dar acceso.\n4. Los permisos son `read` (consultas), `write` (cambios) y `send` (efectos externos). No suponga que un permiso incluye otro: seleccione todos los necesarios. Las operaciones administrativas, la configuración y la gestión de tokens no admiten PAT; requieren sesión interactiva y el rol correspondiente. Un PAT no puede administrar otros PAT.\nEl JWT del inicio de sesión también funciona donde la operación admite sesión. No existe un intercambio público de usuario/contraseña ni un token de SISPRO para su cliente. RipsCloud gestiona la conexión al Ministerio.\n\n## Flujo RIPS: guardar → revisar → validar → enviar → consultar\n1. Lea `GET /api/v1/workspaces/{workspaceId}/rips-packages/context`: tome de allí el NIT, ambiente y códigos de prestador/sede. Use los catálogos y profesionales del espacio. Los documentos del profesional en cada servicio no son los documentos del paciente.\n2. Guarde con `POST …/rips-packages` (`Content-Type: application/json`). La operación incluye un ejemplo por cada uno de los 11 tipos y una tabla de requisitos. Los ejemplos son sintéticos: cambie identificaciones, códigos, números y referencias por los datos autorizados. Crear devuelve `201`, `id`, `revision=1` y `ETag`; no envía al Ministerio.\n3. Consulte `GET …/rips-packages/{packageId}`. Para corregir, haga `PATCH` sobre la misma ruta con `If-Match: \"1\"` (el ETag recibido) y solo los campos editables. El servidor crea otra revisión e invalida la validación anterior. Nunca envíe status, CUV, revision ni otros campos del servidor en el cuerpo de edición.\n4. Valide con `POST …/{packageId}/validations`, cuerpo `{\"revision\":1}`. Lea `validation.outcome`, `validation.issues` y `validation.current`. Un HTTP 200 puede contener hallazgos; no significa que el paquete se pueda enviar. Corrija y valide la revisión nueva. La validación también comprueba referencias aceptadas, XML vigente, saldos y contexto.\n5. Envíe con `POST …/{packageId}/dispatches`, cuerpo `{\"revision\":1}` y un `Idempotency-Key` único. El servidor vuelve a validar antes del efecto externo. HTTP 200 indica resultado terminal: distinga `Accepted` de `Rejected`. HTTP 202 puede indicar `Dispatching` o `Unknown`; no implica aceptación.\n6. Consulte `GET …/{packageId}` y `GET …/{packageId}/dispatches` para leer estado, intentos y evidencia. No hay webhook ni intervalo Retry-After documentado. Aplique espera creciente con límite, sin volver a enviar como mecanismo de consulta.\n7. `Unknown` bloquea nuevos envíos. Si obtuvo el CUV por un canal de soporte, use `POST …/{packageId}/reconciliations` con `attemptId`, `evidence.cuv` y una nueva clave para esa conciliación. La API verifica el CUV; no lo descubre por número de factura. Sin CUV conocido, conserve el estado y escale la recuperación. Un timeout no prueba que el Ministerio no recibió el paquete.\n\n## Contrato y límites\n- **Borradores:** los objetos RIPS tienen propiedades tipadas opcionales y admiten campos de origen adicionales. Guardar no acredita reglas clínicas ni elegibilidad de envío. Use texto JSON para preservar un archivo original, incluidos valores que necesitan corrección. No se infieren datos clínicos faltantes. Las condiciones del tipo de paquete se comprueban al validar/enviar.\n- **PahFacturar:** `attachedDocument` contiene `documentKind` y `number` de un documento aceptado de la empresa configurada. RipsCloud lee su AttachedDocument vigente; no acepta un XML arbitrario en el cuerpo. La API emite facturas de salud y notas crédito/débito. Para una nota débito, lea `GET …/health-invoices/{invoiceId}/debit-note-context`, capture servicios RIPS adicionales y envíe `POST …/debit-notes`. Use `POST …/debit-notes/{debitNoteId}/rips-package` después de la aceptación DIAN; valide y envíe el paquete `nd` por separado. No se copian servicios anteriores ni se aplica un saldo de crédito. Los conceptos DIAN de débito son 1 Intereses, 2 Gastos por cobrar, 3 Cambio del valor y 4 Otros.\n- **Idempotencia:** la clave se vincula a la operación y al espacio; el digest incluye actor, parámetros y contenido. Con `rawBody`, conserve los mismos bytes JSON al reintentar. Una clave con otra intención produce `409 idempotency_key_reused`. Los recibos confirmados no tienen un vencimiento de reutilización publicado; use siempre claves nuevas para intenciones nuevas. El vencimiento interno de un intento no permite reenviarlo. Un resultado `Unknown` sigue bloqueado aunque cambie la clave.\n- **Paginación:** maestros y paquetes usan `limit` (100 por defecto, máximo 500), `offset` (0 por defecto) y devuelven `items,total,limit,offset`. Facturas/notas usan `page` (1), `pageSize` (100, máximo 500) y devuelven `items,totalCount,page,pageSize`; orden predeterminado: `createdAt desc`. Catálogo de medicamentos: `limit` (50, máximo 100), `after=next`; termina con `next=null`. Los listados omiten archivados salvo `includeArchived=true`.\n- **Tipos:** los identificadores son opacos; preserve códigos y documentos como texto. Importes de factura: texto decimal sin separadores de miles (recomendado) o número JSON. Importes nativos RIPS: números JSON. Fechas administrativas: UTC ISO 8601; fechas civiles: `AAAA-MM-DD`; atención RIPS: hora local `AAAA-MM-DD HH:mm`. No convierta esta última a UTC ni quite ceros a códigos.\n- **Catálogos:** CUM/IUM devuelven códigos habilitados y versiones fijadas. El nombre puede faltar. La presentación no autoriza a completar dosis u otros campos clínicos. Los demás códigos clínicos requieren sus catálogos oficiales; esta API no publica una búsqueda para todos ellos.\n- **Correo:** use una clave por entrega. Tras una entrega confirmada, la misma clave devuelve el resultado guardado. Si el envío está en curso o SMTP falla, demora o pierde su respuesta, `email_outcome_unknown` bloquea el reenvío. Verifique la entrega antes de solicitar otro envío; no cambie la clave ni reenvíe automáticamente.\n- **Errores:** lea `ApiError.code` e `issues[].field`; use `requestId` o `X-Request-ID` al reportar el error. `401` exige renovar la autenticación; `403` exige revisar permisos; `409` exige leer el estado/revisión antes de decidir; `422` exige corregir datos. Ante timeout, `502` o `503`, consulte el recurso y repita solo la misma intención con la misma clave si corresponde. Un bloqueo HTML del borde/red no es un ApiError: conserve HTTP, encabezados y requestId, sin registrar el PAT."},"servers":[{"url":"https://api.ripscloud.com","description":"Producción"}],"tags":[{"name":"Paquetes RIPS","description":"Guardar, validar y enviar RIPS al Ministerio de Salud. El resultado trae el CUV o las validaciones del Ministerio; un resultado incierto se concilia antes de reenviar."},{"name":"Facturas de salud","description":"Emitir por PahFacturar la factura electrónica de salud que acompaña un RIPS y preparar su paquete."},{"name":"Notas crédito","description":"Emitir notas crédito de salud por PahFacturar y preparar su RIPS."},{"name":"Notas débito","description":"Emitir notas débito de salud por PahFacturar, con servicios RIPS adicionales explícitos, y preparar su paquete ND."},{"name":"Pacientes","description":"Pacientes del espacio que se reportan en los RIPS."},{"name":"Profesionales","description":"Profesionales de salud que prestan los servicios."},{"name":"Servicios","description":"Servicios guardados para reutilizar al armar RIPS."},{"name":"Pagadores","description":"Entidades responsables de pago a quienes se emiten las facturas."},{"name":"Resoluciones","description":"Resoluciones de numeración de la DIAN para facturas y notas crédito/débito."},{"name":"Catálogo de medicamentos","description":"Consulta de los catálogos de medicamentos (CUM e IUM) vigentes."},{"name":"Integraciones","description":"Conexión del espacio con SISPRO y PahFacturar."},{"name":"Configuración","description":"Empresa, sedes y ambiente (habilitación o producción) del espacio."},{"name":"Espacio","description":"Datos y resumen del espacio de trabajo."},{"name":"Miembros","description":"Miembros del espacio y su rol."},{"name":"Mi cuenta","description":"Perfil del usuario y espacios a los que pertenece."},{"name":"Estado","description":"Disponibilidad de la API y conectividad con FEV RIPS y PahFacturar."}],"components":{"headers":{"RequestId":{"description":"Identificador de esta solicitud. Inclúyalo al solicitar soporte.","schema":{"type":"string"},"example":"11111111-1111-4111-8111-111111111111"},"CorrelationId":{"description":"Identificador de correlación propagado por el servidor.","schema":{"type":"string"},"example":"22222222-2222-4222-8222-222222222222"},"OperationId":{"description":"Identificador estable del caso de uso ejecutado (operationId).","schema":{"type":"string"}},"NoStore":{"description":"Las respuestas de negocio no se deben almacenar en cachés compartidas.","schema":{"type":"string","enum":["no-store"]}},"ResourceRevision":{"description":"Revisión vigente del recurso. Envíe este valor sin cambios en If-Match al crear una revisión. Ejemplo: \"3\".","schema":{"type":"string","pattern":"^\"[0-9]+\"$"},"example":"\"3\""},"BearerChallenge":{"description":"Se requiere autenticación Bearer.","schema":{"type":"string","enum":["Bearer"]}}},"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"PAT o JWT","description":"Para integraciones, cree un PAT en Configuración → Tokens de acceso del portal y envíelo como Authorization: Bearer rc_pat_…. El secreto se muestra una sola vez. El PAT tiene vencimiento, espacios seleccionados y permisos limitados por los del usuario actual. La administración de tokens y del espacio requiere una sesión interactiva OpenAuth; un PAT no sustituye esas funciones."}},"schemas":{"Health":{"type":"object","properties":{"status":{"type":"string","enum":["ok"]},"module":{"type":"string","enum":["ripscloud"]},"deployment":{"type":"string","enum":["sandbox","production"]},"fevrips":{"type":"string","description":"Origen FEV RIPS configurado y verificado para este entorno."},"pahfacturar":{"type":"string","description":"Origen PahFacturar configurado y verificado para este entorno."},"contractVersion":{"type":"string"},"timestamp":{"type":"string"}},"required":["status","module","deployment","fevrips","pahfacturar","contractVersion","timestamp"]},"ApiError":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["invalid_json","duplicate_key","json_syntax","json_depth","json_type","numeric_value_loss","numeric_overflow","conflicting_alias","request_too_large","unsupported_media_type","invalid_request","invalid_query","invalid_path","server_owned_field","route_not_found","method_not_allowed","unauthenticated","personal_access_token_limit_reached","personal_access_token_not_allowed","personal_access_token_scope_required","personal_access_token_workspace_forbidden","account_disabled","phone_identity_retired","platform_admin_required","workspace_membership_required","workspace_admin_required","global_identity_admin_required","migration_not_allowed","authorization_changed","idempotency_key_required","idempotency_key_reused","idempotency_in_progress","revision_required","revision_conflict","workspace_not_found","not_found","resource_archived","duplicate_resource","invalid_environment","sandbox_requires_habilitacion","invalid_phone","phone_in_use","user_not_in_workspace","global_user_disabled","cannot_remove_last_admin","membership_update_failed","invalid_nit","tenant_nit_mismatch","sispro_login_failed","invalid_sispro_token","sispro_unavailable","sispro_credentials_missing","invoice_provider_not_configured","invoice_provider_company_mismatch","invoice_provider_unavailable","upstream_configuration_invalid","invalid_service_category","invalid_medication_code","resolution_number_regression","invalid_resolution_range","invalid_input_provenance","invalid_xlsx_file","invalid_rips_input","invalid_package_kind","attached_document_kind_mismatch","attached_document_not_found","attached_document_too_large","package_validation_failed","validation_required","validation_outdated","reference_not_accepted","source_package_not_accepted","source_invoice_mismatch","credit_balance_exceeded","credit_total_mismatch","dispatch_in_progress","dispatch_conflict","submission_outcome_unknown","package_already_accepted","submission_receipt_missing","reconciliation_not_applicable","reconciliation_inconclusive","invalid_field_profile","health_document_invalid","health_document_not_emittable","health_document_locked","provider_dispatch_in_progress","provider_outcome_unknown","resolution_unavailable","source_invoice_not_accepted","source_customer_missing","source_rips_missing","debit_note_rips_required","debit_note_rips_invalid","debit_note_patient_mismatch","credit_note_selection_invalid","document_not_available","artifact_context_unverified","artifact_download_failed","email_disabled","email_not_configured","recipient_email_missing","email_attachment_too_large","email_outcome_unknown","email_send_failed","invalid_catalog","invalid_catalog_cursor","internal_error"]},"message":{"type":"string"},"field":{"type":"string"},"issues":{"type":"array","items":{"$ref":"#/components/schemas/ApiIssue"}}},"required":["code","message"]},"requestId":{"type":"string"}},"required":["error","requestId"],"description":"Rechazo con código estable. Los rechazos previos al efecto no modifican el estado de negocio."},"ApiIssue":{"type":"object","properties":{"code":{"type":"string"},"field":{"type":"string"},"message":{"type":"string"},"severity":{"type":"string","enum":["error","notification","unresolved"]}},"required":["code","message"],"description":"Hallazgo con código estable y ubicación de campo."},"UpstreamHealth":{"type":"object","properties":{"status":{"type":"string","enum":["ok","upstream_unreachable"]},"module":{"type":"string","enum":["ripscloud"]},"deployment":{"type":"string","enum":["sandbox","production"]},"fevrips":{"$ref":"#/components/schemas/UpstreamProbe"},"pahfacturar":{"$ref":"#/components/schemas/UpstreamProbe"},"timestamp":{"type":"string"}},"required":["status","module","deployment","fevrips","pahfacturar","timestamp"]},"UpstreamProbe":{"type":"object","properties":{"origin":{"type":"string"},"path":{"type":"string"},"ok":{"type":"boolean"},"status":{"type":["integer","null"]},"error":{"type":"string"}},"required":["origin","path","ok","status"]},"AccountProfile":{"type":"object","properties":{"subject":{"type":"string"},"phone":{"type":"string"},"platformRole":{"type":"string","enum":["admin","user"]},"user":{"type":["object","null"],"properties":{"id":{"type":"string"},"email":{"type":["string","null"]},"firstName":{"type":"string"},"lastName":{"type":"string"},"isActive":{"type":"boolean"}},"required":["id","email","firstName","lastName","isActive"]}},"required":["subject","phone","platformRole","user"],"example":{"subject":"user-demo-001","phone":"+573000000000","platformRole":"user","user":{"id":"user-demo-001","email":null,"firstName":"Persona","lastName":"Ejemplo","isActive":true}}},"MyWorkspaces":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Workspace"}}},"required":["items"]},"Workspace":{"type":"object","properties":{"id":{"type":"string"},"companyName":{"type":"string"},"displayName":{"type":"string"},"nit":{"type":"string"},"verificationDigit":{"type":"string"},"environment":{"$ref":"#/components/schemas/WorkspaceEnvironment"},"isActive":{"type":"boolean"},"role":{"type":"string","description":"Rol del usuario en el espacio."}},"required":["id","companyName","displayName","nit","verificationDigit","environment","isActive","role"]},"WorkspaceEnvironment":{"anyOf":[{"type":"number","enum":[1]},{"type":"number","enum":[2]}],"description":"1 = Producción, 2 = Habilitación."},"PersonalAccessTokenList":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/PersonalAccessToken"}}},"required":["items"]},"PersonalAccessToken":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador del token. Úselo para revocar la credencial."},"name":{"type":"string","description":"Nombre que eligió el usuario."},"prefix":{"type":"string","description":"Identificador público de la credencial. No permite autenticar una solicitud."},"workspaceIds":{"type":"array","items":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"description":"Espacios seleccionados al crear la credencial. Una membresía nueva no agrega acceso al token."},"scopes":{"type":"array","items":{"$ref":"#/components/schemas/PersonalAccessTokenScope"}},"createdAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"},"expiresAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"},"lastUsedAt":{"type":["string","null"],"description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"},"revokedAt":{"type":["string","null"],"description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"}},"required":["id","name","prefix","workspaceIds","scopes","createdAt","expiresAt","lastUsedAt","revokedAt"],"description":"Metadatos públicos. El secreto no se puede recuperar. Un token vencido o revocado no se puede reactivar."},"PersonalAccessTokenScope":{"type":"string","enum":["read","write","send"],"description":"read: consultas; write: cambios internos; send: efectos externos. Los permisos son independientes y se limitan por las membresías vigentes. No conceden administración ni configuración de credenciales."},"CreatedPersonalAccessToken":{"type":"object","properties":{"token":{"type":"string","pattern":"^rc_pat_[a-f0-9]{32}_[A-Za-z0-9_-]{43}$","description":"Secreto de un solo acceso. Envíelo como Authorization: Bearer <token>."},"personalAccessToken":{"$ref":"#/components/schemas/PersonalAccessToken"}},"required":["token","personalAccessToken"],"description":"El secreto aparece una sola vez en esta respuesta. Guárdelo en el almacén de secretos de su integración. No se devuelve en el listado ni al revocar."},"CreatePersonalAccessTokenInput":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80,"example":"Sistema clínico"},"workspaceIds":{"type":"array","items":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"minItems":1,"maxItems":100},"scopes":{"type":"array","items":{"$ref":"#/components/schemas/PersonalAccessTokenScope"},"minItems":1,"maxItems":3},"expiresInDays":{"type":"integer","minimum":1,"maximum":365,"example":90,"description":"Vigencia desde la creación, en períodos de 24 horas. El máximo es 365 días."}},"required":["name","workspaceIds","scopes","expiresInDays"],"additionalProperties":false,"description":"Solo admite espacios donde el usuario tiene una membresía activa. El token queda limitado al ambiente donde se crea."},"Ok":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]}},"required":["ok"]},"ServiceCategory":{"type":"integer","minimum":1,"maximum":7,"description":"1 consultas, 2 procedimientos, 3 urgencias, 4 hospitalización, 5 recién nacidos, 6 medicamentos, 7 otros servicios."},"RipsServiceTemplate":{"anyOf":[{"$ref":"#/components/schemas/DraftConsultaDTO"},{"$ref":"#/components/schemas/DraftProcedimientoDTO"},{"$ref":"#/components/schemas/DraftUrgenciaDTO"},{"$ref":"#/components/schemas/DraftHospitalizacionDTO"},{"$ref":"#/components/schemas/DraftRecienNacidoDTO"},{"$ref":"#/components/schemas/DraftMedicamentoDTO"},{"$ref":"#/components/schemas/DraftOtrosServicioDTO"}],"description":"Plantilla parcial del servicio indicado por category: 1 ConsultaDTO, 2 ProcedimientoDTO, 3 UrgenciaDTO, 4 HospitalizacionDTO, 5 RecienNacidoDTO, 6 MedicamentoDTO, 7 OtrosServicioDTO. No es un paquete enviable por sí solo."},"DraftConsultaDTO":{"type":"object","properties":{"codPrestador":{"type":["string","null"],"description":"Código verificado del prestador o sede: use providerCodes de GET /rips-packages/context. No es el documento del profesional. Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"fechaInicioAtencion":{"type":["string","null"],"description":"Hora local clínica en formato AAAA-MM-DD HH:mm. No convertir este campo a una marca UTC. Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"numAutorizacion":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codConsulta":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"modalidadGrupoServicioTecSal":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"grupoServicios":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codServicio":{"type":["number","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"finalidadTecnologiaSalud":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"causaMotivoAtencion":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoPrincipal":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoRelacionado1":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoRelacionado2":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoRelacionado3":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"tipoDiagnosticoPrincipal":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"tipoDocumentoIdentificacion":{"type":["string","null"],"description":"Identificación del profesional que prestó el servicio; no es la identificación del paciente. Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"numDocumentoIdentificacion":{"type":["string","null"],"description":"Identificación del profesional que prestó el servicio; no es la identificación del paciente. Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"vrServicio":{"type":["number","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"conceptoRecaudo":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"valorPagoModerador":{"type":["number","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"numFEVPagoModerador":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codigoVIDA":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoPrincipalCIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"nomCodDiagnosticoPrincipalCIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoPrincipalECIE11":{"type":["string","null"],"description":"Alias de entrada nativo; el envío usa el campo canónico. No envíe ambos con valores diferentes. Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"nomCodDiagnosticoPrincipalECIE11":{"type":["string","null"],"description":"Alias de entrada nativo; el envío usa el campo canónico. No envíe ambos con valores diferentes. Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoRelacionado1CIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"nomCodDiagnosticoRelacionado1CIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoRelacionado2CIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"nomCodDiagnosticoRelacionado2CIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoRelacionado3CIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"nomCodDiagnosticoRelacionado3CIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"consecutivo":{"type":["number","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."}},"additionalProperties":{},"description":"Campos del contrato nativo; admite borradores incompletos y conserva campos de origen adicionales. Guardar no autoriza el envío."},"DraftProcedimientoDTO":{"type":"object","properties":{"codPrestador":{"type":["string","null"],"description":"Código verificado del prestador o sede: use providerCodes de GET /rips-packages/context. No es el documento del profesional. Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"fechaInicioAtencion":{"type":["string","null"],"description":"Hora local clínica en formato AAAA-MM-DD HH:mm. No convertir este campo a una marca UTC. Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"idMIPRES":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"numAutorizacion":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codProcedimiento":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"viaIngresoServicioSalud":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"modalidadGrupoServicioTecSal":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"grupoServicios":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codServicio":{"type":["number","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"finalidadTecnologiaSalud":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"tipoDocumentoIdentificacion":{"type":["string","null"],"description":"Identificación del profesional que prestó el servicio; no es la identificación del paciente. Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"numDocumentoIdentificacion":{"type":["string","null"],"description":"Identificación del profesional que prestó el servicio; no es la identificación del paciente. Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoPrincipal":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoRelacionado":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codComplicacion":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"vrServicio":{"type":["number","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"conceptoRecaudo":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"valorPagoModerador":{"type":["number","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"numFEVPagoModerador":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoPrincipalCIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"nomCodDiagnosticoPrincipalCIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoRelacionadoCIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"nomCodDiagnosticoRelacionadoCIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codComplicacionCIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"nomCodComplicacionCIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codigoVIDA":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"consecutivo":{"type":["number","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."}},"additionalProperties":{},"description":"Campos del contrato nativo; admite borradores incompletos y conserva campos de origen adicionales. Guardar no autoriza el envío."},"DraftUrgenciaDTO":{"type":"object","properties":{"codPrestador":{"type":["string","null"],"description":"Código verificado del prestador o sede: use providerCodes de GET /rips-packages/context. No es el documento del profesional. Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"fechaInicioAtencion":{"type":["string","null"],"description":"Hora local clínica en formato AAAA-MM-DD HH:mm. No convertir este campo a una marca UTC. Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"causaMotivoAtencion":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoPrincipal":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoPrincipalE":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoRelacionadoE1":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoRelacionadoE2":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoRelacionadoE3":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"condicionDestinoUsuarioEgreso":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoCausaMuerte":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"fechaEgreso":{"type":["string","null"],"description":"Hora local clínica en formato AAAA-MM-DD HH:mm. No convertir este campo a una marca UTC. Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoPrincipalCIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"nomCodDiagnosticoPrincipalCIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoPrincipalECIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"nomCodDiagnosticoPrincipalECIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoRelacionadoE1CIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"nomCodDiagnosticoRelacionadoE1CIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoRelacionadoE2CIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"nomCodDiagnosticoRelacionadoE2CIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoRelacionadoE3CIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"nomCodDiagnosticoRelacionadoE3CIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoCausaMuerteCIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"nomCodDiagnosticoCausaMuerteCIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codigoVIDA":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"consecutivo":{"type":["number","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."}},"additionalProperties":{},"description":"Campos del contrato nativo; admite borradores incompletos y conserva campos de origen adicionales. Guardar no autoriza el envío."},"DraftHospitalizacionDTO":{"type":"object","properties":{"codPrestador":{"type":["string","null"],"description":"Código verificado del prestador o sede: use providerCodes de GET /rips-packages/context. No es el documento del profesional. Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"viaIngresoServicioSalud":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"fechaInicioAtencion":{"type":["string","null"],"description":"Hora local clínica en formato AAAA-MM-DD HH:mm. No convertir este campo a una marca UTC. Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"numAutorizacion":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"causaMotivoAtencion":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoPrincipal":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoPrincipalE":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoRelacionadoE1":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoRelacionadoE2":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoRelacionadoE3":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codComplicacion":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"condicionDestinoUsuarioEgreso":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoCausaMuerte":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"fechaEgreso":{"type":["string","null"],"description":"Hora local clínica en formato AAAA-MM-DD HH:mm. No convertir este campo a una marca UTC. Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoPrincipalECIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"nomCodDiagnosticoPrincipalECIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoPrincipalCIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"nomCodDiagnosticoPrincipalCIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoRelacionadoE1CIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"nomCodDiagnosticoRelacionadoE1CIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoRelacionadoE2CIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"nomCodDiagnosticoRelacionadoE2CIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoRelacionadoE3CIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"nomCodDiagnosticoRelacionadoE3CIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codComplicacionCIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"nomCodComplicacionCIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoCausaMuerteCIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"nomCodDiagnosticoCausaMuerteCIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codigoVIDA":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"consecutivo":{"type":["number","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."}},"additionalProperties":{},"description":"Campos del contrato nativo; admite borradores incompletos y conserva campos de origen adicionales. Guardar no autoriza el envío."},"DraftRecienNacidoDTO":{"type":"object","properties":{"codPrestador":{"type":["string","null"],"description":"Código verificado del prestador o sede: use providerCodes de GET /rips-packages/context. No es el documento del profesional. Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"tipoDocumentoIdentificacion":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"numDocumentoIdentificacion":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"fechaNacimiento":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"edadGestacional":{"type":["number","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"numConsultasCPrenatal":{"type":["number","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codSexoBiologico":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"peso":{"type":["number","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoPrincipal":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"condicionDestinoUsuarioEgreso":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoCausaMuerte":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"fechaEgreso":{"type":["string","null"],"description":"Hora local clínica en formato AAAA-MM-DD HH:mm. No convertir este campo a una marca UTC. Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoPrincipalCIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"nomCodDiagnosticoPrincipalCIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoPrincipalECIE11":{"type":["string","null"],"description":"Alias de entrada nativo; el envío usa el campo canónico. No envíe ambos con valores diferentes. Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"nomCodDiagnosticoPrincipalECIE11":{"type":["string","null"],"description":"Alias de entrada nativo; el envío usa el campo canónico. No envíe ambos con valores diferentes. Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoCausaMuerteCIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"nomCodDiagnosticoCausaMuerteCIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codigoVIDA":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"consecutivo":{"type":["number","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."}},"additionalProperties":{},"description":"Campos del contrato nativo; admite borradores incompletos y conserva campos de origen adicionales. Guardar no autoriza el envío."},"DraftMedicamentoDTO":{"type":"object","properties":{"codPrestador":{"type":["string","null"],"description":"Código verificado del prestador o sede: use providerCodes de GET /rips-packages/context. No es el documento del profesional. Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"numAutorizacion":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"idMIPRES":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"fechaDispensAdmon":{"type":["string","null"],"description":"Hora local clínica en formato AAAA-MM-DD HH:mm. No convertir este campo a una marca UTC. Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoPrincipal":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoRelacionado":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"tipoMedicamento":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codTecnologiaSalud":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"nomTecnologiaSalud":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"concentracionMedicamento":{"type":["number","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"unidadMedida":{"type":["number","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"formaFarmaceutica":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"unidadMinDispensa":{"type":["number","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"cantidadMedicamento":{"type":["number","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"diasTratamiento":{"type":["number","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"tipoDocumentoIdentificacion":{"type":["string","null"],"description":"Identificación del profesional que prestó el servicio; no es la identificación del paciente. Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"numDocumentoIdentificacion":{"type":["string","null"],"description":"Identificación del profesional que prestó el servicio; no es la identificación del paciente. Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"vrUnitMedicamento":{"type":["number","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"vrServicio":{"type":["number","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"vrDispensacion":{"type":["number","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"conceptoRecaudo":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"valorPagoModerador":{"type":["number","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"numFEVPagoModerador":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoPrincipalECIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"nomCodDiagnosticoPrincipalECIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoPrincipalCIE11":{"type":["string","null"],"description":"Alias de entrada nativo; el envío usa el campo canónico. No envíe ambos con valores diferentes. Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"nomCodDiagnosticoPrincipalCIE11":{"type":["string","null"],"description":"Alias de entrada nativo; el envío usa el campo canónico. No envíe ambos con valores diferentes. Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codDiagnosticoRelacionadoCIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"nomCodDiagnosticoRelacionadoCIE11":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codigoVIDA":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"consecutivo":{"type":["number","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."}},"additionalProperties":{},"description":"Campos del contrato nativo; admite borradores incompletos y conserva campos de origen adicionales. Guardar no autoriza el envío."},"DraftOtrosServicioDTO":{"type":"object","properties":{"codPrestador":{"type":["string","null"],"description":"Código verificado del prestador o sede: use providerCodes de GET /rips-packages/context. No es el documento del profesional. Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"numAutorizacion":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"idMIPRES":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"fechaSuministroTecnologia":{"type":["string","null"],"description":"Hora local clínica en formato AAAA-MM-DD HH:mm. No convertir este campo a una marca UTC. Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"tipoOS":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codTecnologiaSalud":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"nomTecnologiaSalud":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"cantidadOS":{"type":["number","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"tipoDocumentoIdentificacion":{"type":["string","null"],"description":"Identificación del profesional que prestó el servicio; no es la identificación del paciente. Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"numDocumentoIdentificacion":{"type":["string","null"],"description":"Identificación del profesional que prestó el servicio; no es la identificación del paciente. Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"vrUnitOS":{"type":["number","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"vrServicio":{"type":["number","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"conceptoRecaudo":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"valorPagoModerador":{"type":["number","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"numFEVPagoModerador":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codigoVIDA":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"vrDispensacion":{"type":["number","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"consecutivo":{"type":["number","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."}},"additionalProperties":{},"description":"Campos del contrato nativo; admite borradores incompletos y conserva campos de origen adicionales. Guardar no autoriza el envío."},"WorkspaceMember":{"type":"object","properties":{"userId":{"type":"string"},"phone":{"type":["string","null"]},"email":{"type":["string","null"]},"firstName":{"type":"string"},"lastName":{"type":"string"},"role":{"type":"string"},"isActive":{"type":"boolean"},"joinedAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"}},"required":["userId","phone","email","firstName","lastName","role","isActive","joinedAt"],"description":"Miembro activo identificado por celular."},"AddMemberInput":{"type":"object","properties":{"phone":{"type":"string","minLength":7,"maxLength":20,"description":"Celular colombiano, por ejemplo 3000000000 o +573000000000."},"role":{"$ref":"#/components/schemas/WorkspaceRole"},"firstName":{"type":"string","maxLength":100},"lastName":{"type":"string","maxLength":100},"email":{"type":"string","maxLength":254,"format":"email","description":"Contacto opcional. No se usa para iniciar sesión."}},"required":["phone"],"additionalProperties":false,"description":"Ejemplo sintético de acceso por celular. Use el número autorizado del usuario; el correo no se usa para iniciar sesión.","example":{"phone":"+573000000000","role":"User","firstName":"Persona","lastName":"Ejemplo"}},"WorkspaceRole":{"type":"string","enum":["Admin","User"],"default":"User","description":"Rol en el espacio."},"Dashboard":{"type":"object","properties":{"financial":{"type":"object","properties":{"totalInvoiced":{"type":"number"},"totalCredited":{"type":"number"},"totalDebited":{"type":"number"},"netRevenue":{"type":"number"},"invoiceCount":{"type":"integer"},"creditNoteCount":{"type":"integer"},"debitNoteCount":{"type":"integer"}},"required":["totalInvoiced","totalCredited","totalDebited","netRevenue","invoiceCount","creditNoteCount","debitNoteCount"]},"rips":{"type":"object","properties":{"accepted":{"type":"integer"},"rejected":{"type":"integer"},"pending":{"type":"integer"},"unknown":{"type":"integer"}},"required":["accepted","rejected","pending","unknown"]},"recentDocuments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"date":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"},"documentType":{"type":"string","enum":["Invoice","CreditNote","DebitNote"]},"number":{"type":"string"},"clientName":{"type":"string"},"totalAmount":{"type":"number"},"status":{"type":"string"}},"required":["id","date","documentType","number","clientName","totalAmount","status"]}}},"required":["financial","rips","recentDocuments"],"description":"Resumen del mes en curso (UTC)."},"Company":{"type":"object","properties":{"nit":{"type":"string"},"verificationDigit":{"type":"string"},"companyName":{"type":"string"},"commercialName":{"type":["string","null"]},"taxRegime":{"type":["string","null"]},"economicActivityCode":{"type":["string","null"]},"address":{"type":["string","null"]},"departmentCode":{"type":["string","null"]},"municipalityCode":{"type":["string","null"]},"phoneNumber":{"type":["string","null"]},"email":{"type":["string","null"]},"serviceCode":{"type":["string","null"]},"logoUrl":{"type":["string","null"]},"id":{"type":"string"},"environment":{"$ref":"#/components/schemas/WorkspaceEnvironment"},"isActive":{"type":"boolean"},"locations":{"type":"array","items":{"$ref":"#/components/schemas/Location"}}},"required":["nit","verificationDigit","companyName","commercialName","taxRegime","economicActivityCode","address","departmentCode","municipalityCode","phoneNumber","email","serviceCode","logoUrl","id","environment","isActive","locations"]},"Location":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"address":{"type":["string","null"]},"departmentCode":{"type":["string","null"]},"municipalityCode":{"type":["string","null"]},"phoneNumber":{"type":["string","null"]},"email":{"type":["string","null"]},"habilitationCode":{"type":["string","null"]},"isActive":{"type":"boolean"}},"required":["id","name","address","departmentCode","municipalityCode","phoneNumber","email","habilitationCode","isActive"],"description":"Sede del prestador. El código de habilitación identifica la sede ante SISPRO."},"UpdateCompanyInput":{"type":"object","properties":{"verificationDigit":{"type":"string","pattern":"^\\d$"},"companyName":{"type":"string","minLength":1,"maxLength":200},"commercialName":{"type":["string","null"],"maxLength":200},"taxRegime":{"type":["string","null"],"maxLength":40},"economicActivityCode":{"type":["string","null"],"maxLength":20},"address":{"type":["string","null"],"maxLength":300},"departmentCode":{"type":["string","null"],"maxLength":5},"municipalityCode":{"type":["string","null"],"maxLength":8},"phoneNumber":{"type":["string","null"],"maxLength":30},"email":{"type":["string","null"],"maxLength":254,"format":"email"},"serviceCode":{"type":["string","null"],"maxLength":20},"logoUrl":{"type":["string","null"],"maxLength":500,"format":"uri"},"locations":{"type":"array","items":{"$ref":"#/components/schemas/LocationInput"},"maxItems":200}},"additionalProperties":false,"description":"El NIT del espacio solo lo cambia un administrador de la plataforma. Solo se cambian los campos presentes. Ejemplo sintético.","example":{"commercialName":"Prestador de ejemplo","address":"Calle de ejemplo 1","email":"prestador@example.invalid"}},"LocationInput":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"name":{"type":"string","minLength":1,"maxLength":200},"address":{"type":["string","null"],"maxLength":300},"departmentCode":{"type":["string","null"],"maxLength":5},"municipalityCode":{"type":["string","null"],"maxLength":8},"phoneNumber":{"type":["string","null"],"maxLength":30},"email":{"type":["string","null"],"maxLength":254,"format":"email"},"habilitationCode":{"type":["string","null"],"pattern":"^\\d{10,12}$"},"isActive":{"type":"boolean"}},"additionalProperties":false,"description":"Sede del prestador. Ejemplo sintético; el código debe ser el de habilitación real de la sede.","example":{"name":"Sede de ejemplo","address":"Calle de ejemplo 1","departmentCode":"11","municipalityCode":"11001","habilitationCode":"110010000101"}},"EnvironmentSettings":{"type":"object","properties":{"environment":{"$ref":"#/components/schemas/WorkspaceEnvironment"},"environmentName":{"type":"string","enum":["Production","HAB"]}},"required":["environment","environmentName"]},"UpdateEnvironmentInput":{"type":"object","properties":{"environment":{"$ref":"#/components/schemas/WorkspaceEnvironment"}},"required":["environment"],"additionalProperties":false,"description":"Sandbox solo admite habilitación (2). Requiere sesión interactiva y rol Admin.","example":{"environment":2}},"MemberList":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceMember"}}},"required":["items"]},"SisproSettings":{"type":"object","properties":{"nit":{"type":"string"},"documentType":{"type":["string","null"]},"documentNumber":{"type":["string","null"]},"userType":{"type":["string","null"]},"hasPassword":{"type":"boolean"},"session":{"type":"object","properties":{"active":{"type":"boolean"},"claims":{"type":["object","null"],"additionalProperties":{},"description":"Datos públicos del prestador leídos del token. El token no se expone."}},"required":["active","claims"]}},"required":["nit","documentType","documentNumber","userType","hasPassword","session"],"description":"Estado de la integración SISPRO. La clave y el token nunca se devuelven."},"SisproLoginResult":{"type":"object","properties":{"login":{"type":"boolean","enum":[true]},"registered":{"type":"boolean"},"userType":{"type":["string","null"]},"nit":{"type":"string"},"messages":{"type":"array","items":{"type":"string"}},"company":{"$ref":"#/components/schemas/Company"}},"required":["login","registered","userType","nit","messages","company"]},"SisproLoginInput":{"type":"object","properties":{"documentType":{"type":"string","minLength":1,"maxLength":5},"documentNumber":{"type":"string","minLength":1,"maxLength":20},"password":{"type":"string","minLength":1,"maxLength":200,"format":"password","writeOnly":true},"userType":{"type":"string","minLength":1,"maxLength":10}},"required":["documentType","documentNumber","password"],"additionalProperties":false,"description":"Credenciales SISPRO del espacio. El NIT siempre es el del espacio verificado. Ejemplo sintético: el texto de password es un marcador y debe sustituirse de forma segura; no lo use como credencial.","example":{"documentType":"CC","documentNumber":"1000000001","password":"REEMPLAZAR_CON_CREDENCIAL_SISPRO"}},"InvoiceProviderSettings":{"type":"object","properties":{"provider":{"type":"string","enum":["pahfacturar"]},"hasToken":{"type":"boolean"},"teamId":{"type":["string","null"]},"companyId":{"type":["string","null"]}},"required":["provider","hasToken","teamId","companyId"],"description":"El token personal de PahFacturar es de solo escritura."},"UpdateInvoiceProviderInput":{"type":"object","properties":{"token":{"type":["string","null"],"minLength":1,"maxLength":500,"writeOnly":true,"description":"Omitir para conservar; null para eliminar."},"teamId":{"type":["string","null"],"format":"uuid"},"companyId":{"type":["string","null"],"format":"uuid"}},"additionalProperties":false,"description":"Ejemplo sintético para vincular empresa/equipo. Omite token para conservar la credencial existente; use los UUID de su empresa y equipo de PahFacturar.","example":{"teamId":"11111111-1111-4111-8111-111111111111","companyId":"22222222-2222-4222-8222-222222222222"}},"InvoiceProviderVerification":{"type":"object","properties":{"verified":{"type":"boolean","enum":[true]},"companyId":{"type":"string"},"teamId":{"type":"string"},"nit":{"type":"string"},"dianEnvironment":{"type":"string","enum":["hab","prod"]}},"required":["verified","companyId","teamId","nit","dianEnvironment"]},"UpdateMemberInput":{"type":"object","properties":{"role":{"$ref":"#/components/schemas/WorkspaceRole"},"phone":{"type":"string","minLength":7,"maxLength":20,"description":"Celular colombiano, por ejemplo 3000000000 o +573000000000."},"firstName":{"type":"string","maxLength":100},"lastName":{"type":"string","maxLength":100}},"additionalProperties":false,"description":"Cambiar celular o nombre requiere un administrador de la plataforma. El ejemplo solo cambia el rol del miembro.","example":{"role":"User"}},"PatientList":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Patient"}},"total":{"type":"integer","minimum":0},"limit":{"type":"integer"},"offset":{"type":"integer"}},"required":["items","total","limit","offset"],"description":"Página de resultados del espacio verificado. Predeterminados: limit=100, offset=0. total es el número de coincidencias; termine cuando offset + items.length >= total. Los cambios concurrentes pueden desplazar filas entre páginas."},"Patient":{"type":"object","properties":{"id":{"type":"string"},"documentType":{"type":"string"},"documentNumber":{"type":"string"},"userType":{"type":["string","null"]},"birthDate":{"type":["string","null"]},"sexCode":{"type":["string","null"]},"countryResidenceCode":{"type":["string","null"]},"countryOriginCode":{"type":["string","null"]},"municipalityResidenceCode":{"type":["string","null"]},"territorialZoneCode":{"type":["string","null"]},"disabilityFlag":{"type":["string","null"]},"incapacityCertificate":{"type":["string","null"],"enum":["SI","NO",null]},"registroSiras":{"type":["string","null"]},"firstName":{"type":"string"},"middleName":{"type":["string","null"]},"lastName":{"type":"string"},"secondLastName":{"type":["string","null"]},"isActive":{"type":"boolean"},"createdAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"},"updatedAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"}},"required":["id","documentType","documentNumber","userType","birthDate","sexCode","countryResidenceCode","countryOriginCode","municipalityResidenceCode","territorialZoneCode","disabilityFlag","incapacityCertificate","registroSiras","firstName","middleName","lastName","secondLastName","isActive","createdAt","updatedAt"]},"PatientInput":{"type":"object","properties":{"documentType":{"type":"string","minLength":1,"maxLength":5},"documentNumber":{"type":"string","minLength":1,"maxLength":20,"pattern":"^\\S+$"},"userType":{"type":["string","null"],"maxLength":5},"birthDate":{"type":["string","null"],"pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Fecha AAAA-MM-DD.","example":"2026-10-15"},"sexCode":{"type":["string","null"],"maxLength":2},"countryResidenceCode":{"type":["string","null"],"maxLength":5},"countryOriginCode":{"type":["string","null"],"maxLength":5},"municipalityResidenceCode":{"type":["string","null"],"maxLength":8},"territorialZoneCode":{"type":["string","null"],"maxLength":4},"disabilityFlag":{"type":["string","null"],"maxLength":4},"incapacityCertificate":{"type":["string","null"],"enum":["SI","NO",null],"description":"Certificado de incapacidad: SI, NO o null."},"registroSiras":{"type":["string","null"],"maxLength":20},"firstName":{"type":"string","minLength":1,"maxLength":60},"middleName":{"type":["string","null"],"maxLength":60},"lastName":{"type":"string","minLength":1,"maxLength":60},"secondLastName":{"type":["string","null"],"maxLength":60}},"required":["documentType","documentNumber","firstName","lastName"],"additionalProperties":false,"description":"Ejemplo sintético. Use los datos reales del paciente autorizado y los códigos de su catálogo.","example":{"documentType":"CC","documentNumber":"1000000002","firstName":"Paciente","lastName":"Ejemplo","birthDate":"1990-01-01","userType":"01","sexCode":"F","countryResidenceCode":"170","countryOriginCode":"170","municipalityResidenceCode":"11001","territorialZoneCode":"01","incapacityCertificate":"NO"}},"PatientPatch":{"type":"object","properties":{"documentType":{"type":"string","minLength":1,"maxLength":5},"documentNumber":{"type":"string","minLength":1,"maxLength":20,"pattern":"^\\S+$"},"userType":{"type":["string","null"],"maxLength":5},"birthDate":{"type":["string","null"],"pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Fecha AAAA-MM-DD.","example":"2026-10-15"},"sexCode":{"type":["string","null"],"maxLength":2},"countryResidenceCode":{"type":["string","null"],"maxLength":5},"countryOriginCode":{"type":["string","null"],"maxLength":5},"municipalityResidenceCode":{"type":["string","null"],"maxLength":8},"territorialZoneCode":{"type":["string","null"],"maxLength":4},"disabilityFlag":{"type":["string","null"],"maxLength":4},"incapacityCertificate":{"type":["string","null"],"enum":["SI","NO",null],"description":"Certificado de incapacidad: SI, NO o null."},"registroSiras":{"type":["string","null"],"maxLength":20},"firstName":{"type":"string","minLength":1,"maxLength":60},"middleName":{"type":["string","null"],"maxLength":60},"lastName":{"type":"string","minLength":1,"maxLength":60},"secondLastName":{"type":["string","null"],"maxLength":60}},"additionalProperties":false,"description":"Solo los campos que se cambian; omitir conserva el valor. null borra un campo nullable. Ejemplo sintético.","example":{"municipalityResidenceCode":"05001","middleName":null}},"SpecialistList":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Specialist"}},"total":{"type":"integer","minimum":0},"limit":{"type":"integer"},"offset":{"type":"integer"}},"required":["items","total","limit","offset"],"description":"Página de resultados del espacio verificado. Predeterminados: limit=100, offset=0. total es el número de coincidencias; termine cuando offset + items.length >= total. Los cambios concurrentes pueden desplazar filas entre páginas."},"Specialist":{"type":"object","properties":{"id":{"type":"string"},"documentType":{"type":"string"},"documentNumber":{"type":"string"},"professionalType":{"type":["string","null"]},"registrationNumber":{"type":["string","null"]},"birthDate":{"type":["string","null"]},"sexCode":{"type":["string","null"]},"countryResidenceCode":{"type":["string","null"]},"municipalityResidenceCode":{"type":["string","null"]},"territorialZoneCode":{"type":["string","null"]},"firstName":{"type":["string","null"]},"lastName":{"type":["string","null"]},"isActive":{"type":"boolean"},"createdAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"},"updatedAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"}},"required":["id","documentType","documentNumber","professionalType","registrationNumber","birthDate","sexCode","countryResidenceCode","municipalityResidenceCode","territorialZoneCode","firstName","lastName","isActive","createdAt","updatedAt"],"description":"Profesional de salud que presta servicios RIPS."},"SpecialistInput":{"type":"object","properties":{"documentType":{"type":"string","minLength":1,"maxLength":5},"documentNumber":{"type":"string","minLength":1,"maxLength":20,"pattern":"^\\S+$"},"professionalType":{"type":["string","null"],"maxLength":10},"registrationNumber":{"type":["string","null"],"maxLength":30},"birthDate":{"type":["string","null"],"pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Fecha AAAA-MM-DD.","example":"2026-10-15"},"sexCode":{"type":["string","null"],"maxLength":2},"countryResidenceCode":{"type":["string","null"],"maxLength":5},"municipalityResidenceCode":{"type":["string","null"],"maxLength":8},"territorialZoneCode":{"type":["string","null"],"maxLength":4},"firstName":{"type":["string","null"],"maxLength":60},"lastName":{"type":["string","null"],"maxLength":60}},"required":["documentType","documentNumber"],"additionalProperties":false,"description":"Profesional que presta el servicio, distinto del paciente. Ejemplo sintético; reemplace la identificación y el registro profesional.","example":{"documentType":"CC","documentNumber":"1000000001","firstName":"Profesional","lastName":"Ejemplo","registrationNumber":"REG-DEMO-001"}},"SpecialistPatch":{"type":"object","properties":{"documentType":{"type":"string","minLength":1,"maxLength":5},"documentNumber":{"type":"string","minLength":1,"maxLength":20,"pattern":"^\\S+$"},"professionalType":{"type":["string","null"],"maxLength":10},"registrationNumber":{"type":["string","null"],"maxLength":30},"birthDate":{"type":["string","null"],"pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Fecha AAAA-MM-DD.","example":"2026-10-15"},"sexCode":{"type":["string","null"],"maxLength":2},"countryResidenceCode":{"type":["string","null"],"maxLength":5},"municipalityResidenceCode":{"type":["string","null"],"maxLength":8},"territorialZoneCode":{"type":["string","null"],"maxLength":4},"firstName":{"type":["string","null"],"maxLength":60},"lastName":{"type":["string","null"],"maxLength":60}},"additionalProperties":false,"description":"Actualización parcial del profesional. Omitir conserva el valor. Ejemplo sintético.","example":{"registrationNumber":"REG-DEMO-002"}},"ServiceList":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Service"}},"total":{"type":"integer","minimum":0},"limit":{"type":"integer"},"offset":{"type":"integer"}},"required":["items","total","limit","offset"],"description":"Página de resultados del espacio verificado. Predeterminados: limit=100, offset=0. total es el número de coincidencias; termine cuando offset + items.length >= total. Los cambios concurrentes pueden desplazar filas entre páginas."},"Service":{"type":"object","properties":{"id":{"type":"string"},"category":{"$ref":"#/components/schemas/ServiceCategory"},"name":{"type":"string"},"description":{"type":["string","null"]},"payload":{"$ref":"#/components/schemas/RipsServiceTemplate"},"inputProvenance":{"$ref":"#/components/schemas/JsonObject"},"isActive":{"type":"boolean"},"createdAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"},"updatedAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"}},"required":["id","category","name","description","payload","inputProvenance","isActive","createdAt","updatedAt"]},"JsonObject":{"type":["object","null"],"additionalProperties":{},"description":"Objeto JSON."},"ServiceInput":{"type":"object","properties":{"category":{"$ref":"#/components/schemas/ServiceCategory"},"name":{"type":"string","minLength":1,"maxLength":200},"description":{"type":["string","null"],"maxLength":1000},"payload":{"$ref":"#/components/schemas/RipsServiceTemplate"},"inputProvenance":{"type":"object","additionalProperties":{},"description":"Procedencia de prellenados y ediciones explícitas. Se verifica contra la configuración del espacio."}},"required":["category","name","payload"],"additionalProperties":false,"description":"Plantilla de servicio. Sustituya los datos sintéticos de prestador, profesional y códigos antes de usarla en un RIPS.","example":{"category":1,"name":"Consulta de ejemplo","payload":{"codPrestador":"110010000101","fechaInicioAtencion":"2026-09-01 10:00","numAutorizacion":null,"codConsulta":"890201","modalidadGrupoServicioTecSal":"01","grupoServicios":"01","codServicio":325,"finalidadTecnologiaSalud":"44","causaMotivoAtencion":"38","codDiagnosticoPrincipal":"Z000","codDiagnosticoRelacionado1":null,"codDiagnosticoRelacionado2":null,"codDiagnosticoRelacionado3":null,"tipoDiagnosticoPrincipal":"01","tipoDocumentoIdentificacion":"CC","numDocumentoIdentificacion":"1000000001","vrServicio":100000,"conceptoRecaudo":"05","valorPagoModerador":0,"numFEVPagoModerador":null,"consecutivo":1}}},"ServicePatch":{"type":"object","properties":{"category":{"$ref":"#/components/schemas/ServiceCategory"},"name":{"type":"string","minLength":1,"maxLength":200},"description":{"type":["string","null"],"maxLength":1000},"payload":{"$ref":"#/components/schemas/RipsServiceTemplate"},"inputProvenance":{"type":"object","additionalProperties":{},"description":"Procedencia de prellenados y ediciones explícitas. Se verifica contra la configuración del espacio."}},"additionalProperties":false,"description":"Actualización parcial de la plantilla. Si envía payload, envíe el objeto de plantilla que desea guardar.","example":{"name":"Consulta de medicina general","description":"Plantilla revisada de ejemplo"}},"ClientList":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Client"}},"total":{"type":"integer","minimum":0},"limit":{"type":"integer"},"offset":{"type":"integer"}},"required":["items","total","limit","offset"],"description":"Página de resultados del espacio verificado. Predeterminados: limit=100, offset=0. total es el número de coincidencias; termine cuando offset + items.length >= total. Los cambios concurrentes pueden desplazar filas entre páginas."},"Client":{"type":"object","properties":{"id":{"type":"string"},"nit":{"type":"string"},"verificationDigit":{"type":["string","null"]},"companyName":{"type":"string"},"commercialName":{"type":["string","null"]},"displayName":{"type":"string"},"taxRegime":{"type":["string","null"]},"economicActivityCode":{"type":["string","null"]},"address":{"type":["string","null"]},"departmentCode":{"type":["string","null"]},"municipalityCode":{"type":["string","null"]},"phoneNumber":{"type":["string","null"]},"email":{"type":["string","null"]},"typeOrganizationId":{"type":"integer"},"typeDocumentIdentificationId":{"type":"integer"},"isActive":{"type":"boolean"},"createdAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"},"updatedAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"}},"required":["id","nit","verificationDigit","companyName","commercialName","displayName","taxRegime","economicActivityCode","address","departmentCode","municipalityCode","phoneNumber","email","typeOrganizationId","typeDocumentIdentificationId","isActive","createdAt","updatedAt"],"description":"Pagador o entidad responsable a quien se emite la factura de salud."},"ClientInput":{"type":"object","properties":{"nit":{"type":"string","pattern":"^\\d{3,20}$","description":"NIT sin dígito de verificación."},"verificationDigit":{"type":["string","null"],"pattern":"^\\d$"},"companyName":{"type":"string","minLength":1,"maxLength":200},"commercialName":{"type":["string","null"],"maxLength":200},"taxRegime":{"type":["string","null"],"maxLength":40},"economicActivityCode":{"type":["string","null"],"maxLength":20},"address":{"type":["string","null"],"maxLength":300},"departmentCode":{"type":["string","null"],"maxLength":5},"municipalityCode":{"type":["string","null"],"maxLength":8},"phoneNumber":{"type":["string","null"],"maxLength":30},"email":{"type":["string","null"],"maxLength":254,"format":"email"},"typeOrganizationId":{"type":"integer","minimum":1,"maximum":9},"typeDocumentIdentificationId":{"type":"integer","minimum":1,"maximum":20}},"required":["nit","companyName"],"additionalProperties":false,"description":"Entidad pagadora, distinta del paciente y del prestador. Ejemplo sintético.","example":{"nit":"900123456","companyName":"Entidad pagadora de ejemplo","address":"Calle de ejemplo 1","departmentCode":"11","municipalityCode":"11001","email":"pagador@example.invalid"}},"ClientPatch":{"type":"object","properties":{"nit":{"type":"string","pattern":"^\\d{3,20}$","description":"NIT sin dígito de verificación."},"verificationDigit":{"type":["string","null"],"pattern":"^\\d$"},"companyName":{"type":"string","minLength":1,"maxLength":200},"commercialName":{"type":["string","null"],"maxLength":200},"taxRegime":{"type":["string","null"],"maxLength":40},"economicActivityCode":{"type":["string","null"],"maxLength":20},"address":{"type":["string","null"],"maxLength":300},"departmentCode":{"type":["string","null"],"maxLength":5},"municipalityCode":{"type":["string","null"],"maxLength":8},"phoneNumber":{"type":["string","null"],"maxLength":30},"email":{"type":["string","null"],"maxLength":254,"format":"email"},"typeOrganizationId":{"type":"integer","minimum":1,"maximum":9},"typeDocumentIdentificationId":{"type":"integer","minimum":1,"maximum":20}},"additionalProperties":false,"description":"Solo cambia los campos presentes. Ejemplo sintético; un campo nullable se puede limpiar con null.","example":{"address":"Calle de ejemplo 2","commercialName":null}},"InvoiceResolutionList":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Resolution"}},"total":{"type":"integer","minimum":0},"limit":{"type":"integer"},"offset":{"type":"integer"}},"required":["items","total","limit","offset"],"description":"Página de resultados del espacio verificado. Predeterminados: limit=100, offset=0. total es el número de coincidencias; termine cuando offset + items.length >= total. Los cambios concurrentes pueden desplazar filas entre páginas."},"Resolution":{"type":"object","properties":{"id":{"type":"string"},"resolutionNumber":{"type":"string"},"prefix":{"type":"string"},"nextNumber":{"type":"integer"},"fromNumber":{"type":"integer"},"toNumber":{"type":"integer"},"validFrom":{"type":"string"},"validTo":{"type":"string"},"environment":{"$ref":"#/components/schemas/WorkspaceEnvironment"},"hasTechnicalKey":{"type":"boolean","description":"Indica si existe una clave técnica guardada, sin revelar su valor."},"isActive":{"type":"boolean"},"createdAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"},"updatedAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"}},"required":["id","resolutionNumber","prefix","nextNumber","fromNumber","toNumber","validFrom","validTo","environment","hasTechnicalKey","isActive","createdAt","updatedAt"],"description":"Resolución de numeración DIAN del espacio."},"ResolutionInput":{"type":"object","properties":{"resolutionNumber":{"type":"string","minLength":1,"maxLength":40},"prefix":{"type":"string","minLength":0,"maxLength":10,"pattern":"^[A-Za-z0-9]*$"},"fromNumber":{"type":"integer","minimum":1,"maximum":9999999999},"toNumber":{"type":"integer","minimum":1,"maximum":9999999999},"validFrom":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Fecha AAAA-MM-DD.","example":"2026-10-15"},"validTo":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Fecha AAAA-MM-DD.","example":"2026-10-15"},"environment":{"$ref":"#/components/schemas/WorkspaceEnvironment"},"technicalKey":{"type":["string","null"],"maxLength":200,"writeOnly":true,"description":"Clave técnica DIAN. Omitir conserva la clave existente; null la elimina. Nunca se devuelve en consultas ni contextos."}},"required":["resolutionNumber","prefix","fromNumber","toNumber","validFrom","validTo","environment"],"additionalProperties":false,"description":"El consecutivo siguiente lo asigna el servidor desde fromNumber. Ejemplo sintético: use una resolución autorizada para la empresa y el ambiente; este ejemplo no concede numeración DIAN.","example":{"resolutionNumber":"18760000001","prefix":"SETP","fromNumber":990000001,"toNumber":990010000,"validFrom":"2026-01-01","validTo":"2027-12-31","environment":2}},"ResolutionPatch":{"type":"object","properties":{"resolutionNumber":{"type":"string","minLength":1,"maxLength":40},"prefix":{"type":"string","minLength":0,"maxLength":10,"pattern":"^[A-Za-z0-9]*$"},"fromNumber":{"type":"integer","minimum":1,"maximum":9999999999},"toNumber":{"type":"integer","minimum":1,"maximum":9999999999},"validFrom":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Fecha AAAA-MM-DD.","example":"2026-10-15"},"validTo":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Fecha AAAA-MM-DD.","example":"2026-10-15"},"environment":{"$ref":"#/components/schemas/WorkspaceEnvironment"},"technicalKey":{"type":["string","null"],"maxLength":200,"writeOnly":true,"description":"Clave técnica DIAN. Omitir conserva la clave existente; null la elimina. Nunca se devuelve en consultas ni contextos."},"nextNumber":{"type":"integer","minimum":1,"maximum":9999999999,"description":"Solo puede avanzar; nunca retroceder sobre números reservados."}},"additionalProperties":false,"description":"Actualización parcial. nextNumber solo puede avanzar dentro del rango autorizado; el ejemplo supone que 990000010 cumple esas condiciones.","example":{"nextNumber":990000010}},"CreditNoteResolutionList":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Resolution"}},"total":{"type":"integer","minimum":0},"limit":{"type":"integer"},"offset":{"type":"integer"}},"required":["items","total","limit","offset"],"description":"Página de resultados del espacio verificado. Predeterminados: limit=100, offset=0. total es el número de coincidencias; termine cuando offset + items.length >= total. Los cambios concurrentes pueden desplazar filas entre páginas."},"XlsxUpload":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]},"RipsContext":{"type":"object","properties":{"workspaceId":{"type":"string"},"nit":{"type":"string"},"companyName":{"type":"string"},"environment":{"$ref":"#/components/schemas/WorkspaceEnvironment"},"providerCodes":{"type":"array","items":{"type":"string"},"description":"Código de prestador y códigos de habilitación de sedes verificados."},"invoiceProvider":{"type":"string","enum":["pahfacturar"]}},"required":["workspaceId","nit","companyName","environment","providerCodes","invoiceProvider"]},"HealthInvoiceContext":{"type":"object","properties":{"provider":{"type":"object","properties":{"name":{"type":"string","enum":["pahfacturar"]},"hasToken":{"type":"boolean"},"configured":{"type":"boolean"}},"required":["name","hasToken","configured"]},"workspace":{"type":"object","properties":{"id":{"type":"string"},"companyName":{"type":"string"},"nit":{"type":"string"},"verificationDigit":{"type":"string"},"environment":{"anyOf":[{"type":"number","enum":[1]},{"type":"number","enum":[2]}]},"serviceCode":{"type":["string","null"]},"providerCodes":{"type":"array","items":{"type":"string"}}},"required":["id","companyName","nit","verificationDigit","environment","serviceCode","providerCodes"]},"clients":{"type":"array","items":{"$ref":"#/components/schemas/Client"}},"locations":{"type":"array","items":{"$ref":"#/components/schemas/Location"}},"resolutions":{"type":"array","items":{"$ref":"#/components/schemas/Resolution"}}},"required":["provider","workspace","clients","locations","resolutions"]},"DebitNoteResolutionList":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Resolution"}},"total":{"type":"integer","minimum":0},"limit":{"type":"integer"},"offset":{"type":"integer"}},"required":["items","total","limit","offset"],"description":"Página de resultados del espacio verificado. Predeterminados: limit=100, offset=0. total es el número de coincidencias; termine cuando offset + items.length >= total. Los cambios concurrentes pueden desplazar filas entre páginas."},"RipsPackageList":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/RipsPackageSummary"}},"total":{"type":"integer","minimum":0},"limit":{"type":"integer"},"offset":{"type":"integer"}},"required":["items","total","limit","offset"],"description":"Página de resultados del espacio verificado. Predeterminados: limit=100, offset=0. total es el número de coincidencias; termine cuando offset + items.length >= total. Los cambios concurrentes pueden desplazar filas entre páginas."},"RipsPackageSummary":{"type":"object","properties":{"id":{"type":"string"},"kind":{"$ref":"#/components/schemas/RipsPackageKind"},"status":{"$ref":"#/components/schemas/RipsPackageStatus"},"revision":{"type":"integer","minimum":1},"isActive":{"type":"boolean"},"statusMessage":{"type":["string","null"]},"numFactura":{"type":["string","null"]},"numNota":{"type":["string","null"]},"tipoNota":{"type":["string","null"]},"cufeOrCude":{"type":["string","null"]},"attachedDocument":{"$ref":"#/components/schemas/AttachedDocument"},"sourceInvoiceId":{"type":["string","null"]},"sourceCreditNoteId":{"type":["string","null"]},"sourceDebitNoteId":{"type":["string","null"]},"sourcePackageId":{"type":["string","null"]},"procesoId":{"type":["string","null"]},"cuv":{"type":["string","null"],"description":"Solo con estado Accepted."},"validation":{"type":["object","null"],"properties":{"id":{"type":"string"},"revision":{"type":"integer"},"outcome":{"type":"string","enum":["valid","invalid"]},"current":{"type":"boolean","description":"true si corresponde a la revisión y al contexto vigentes."},"contentDigest":{"type":"string"},"attachedDocumentSha256":{"type":["string","null"],"description":"sha256 del AttachedDocument leído del sistema de facturación para esta validación; null si el paquete no envía XML o no se pudo leer."},"rulesVersion":{"type":"string"},"contextDigest":{"type":"string"},"referencesDigest":{"type":"string"},"validatedAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"}},"required":["id","revision","outcome","current","contentDigest","attachedDocumentSha256","rulesVersion","contextDigest","referencesDigest","validatedAt"]},"lastAttempt":{"type":["object","null"],"properties":{"id":{"type":"string"},"revision":{"type":"integer"},"outcome":{"$ref":"#/components/schemas/DispatchOutcome"},"environment":{"$ref":"#/components/schemas/WorkspaceEnvironment"},"attemptedAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"},"completedAt":{"type":["string","null"],"description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"},"procesoId":{"type":["string","null"]},"cuv":{"type":["string","null"],"description":"Solo presente si el recibo es aceptado y verificado."},"message":{"type":["string","null"]},"requestDigest":{"type":"string"},"reconciliation":{"type":["object","null"],"properties":{"evidenceCuv":{"type":"string"},"outcome":{"type":"string","enum":["accepted","inconclusive"]},"reconciledAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"}},"required":["evidenceCuv","outcome","reconciledAt"]}},"required":["id","revision","outcome","environment","attemptedAt","completedAt","procesoId","cuv","message","requestDigest","reconciliation"]},"createdByUserId":{"type":["string","null"]},"createdAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"},"updatedAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"}},"required":["id","kind","status","revision","isActive","statusMessage","numFactura","numNota","tipoNota","cufeOrCude","attachedDocument","sourceInvoiceId","sourceCreditNoteId","sourceDebitNoteId","sourcePackageId","procesoId","cuv","validation","lastAttempt","createdByUserId","createdAt","updatedAt"]},"RipsPackageKind":{"type":"string","enum":["rips_sin_factura","fev_rips","nc_parcial","nc_total","nd","nota_ajuste","capita_inicial","capita_periodo","capita_final","nc_acuerdo_voluntades","nc_capita"],"description":"Uno de los once tipos de paquete FEV RIPS fijados en el contrato nativo."},"RipsPackageStatus":{"type":"string","enum":["Draft","Dispatching","Accepted","Rejected","Unknown"],"description":"Draft: editable. Dispatching: intento registrado, en curso. Accepted: recibo verificado. Rejected: rechazo terminal; se corrige con una revisión nueva. Unknown: resultado incierto; solo se resuelve conciliando con evidencia."},"AttachedDocument":{"type":["object","null"],"properties":{"source":{"type":"string","enum":["pahfacturar"]},"documentKind":{"$ref":"#/components/schemas/AttachedDocumentKind"},"providerDocumentId":{"type":"string"},"number":{"type":"string"},"cufe":{"type":"string","description":"CUFE o CUDE que informa el sistema de facturación."}},"required":["source","documentKind","providerDocumentId","number","cufe"],"description":"Documento referenciado. El XML vigente se lee del sistema de facturación al guardar, validar y enviar."},"AttachedDocumentKind":{"type":"string","enum":["invoice","credit-note","debit-note"],"description":"invoice para FEV y cápita, credit-note para las acciones NC, debit-note para ND."},"DispatchOutcome":{"type":"string","enum":["pending","accepted","rejected","unknown","not_sent"],"description":"pending: intento en curso. not_sent: falló antes del efecto externo (sin envío). unknown: la llamada pudo ocurrir y no hay evidencia concluyente."},"RipsPackage":{"type":"object","properties":{"id":{"type":"string"},"kind":{"$ref":"#/components/schemas/RipsPackageKind"},"status":{"$ref":"#/components/schemas/RipsPackageStatus"},"revision":{"type":"integer","minimum":1},"isActive":{"type":"boolean"},"statusMessage":{"type":["string","null"]},"numFactura":{"type":["string","null"]},"numNota":{"type":["string","null"]},"tipoNota":{"type":["string","null"]},"cufeOrCude":{"type":["string","null"]},"attachedDocument":{"$ref":"#/components/schemas/AttachedDocument"},"sourceInvoiceId":{"type":["string","null"]},"sourceCreditNoteId":{"type":["string","null"]},"sourceDebitNoteId":{"type":["string","null"]},"sourcePackageId":{"type":["string","null"]},"procesoId":{"type":["string","null"]},"cuv":{"type":["string","null"],"description":"Solo con estado Accepted."},"validation":{"type":["object","null"],"properties":{"id":{"type":"string"},"revision":{"type":"integer"},"outcome":{"type":"string","enum":["valid","invalid"]},"current":{"type":"boolean","description":"true si corresponde a la revisión y al contexto vigentes."},"contentDigest":{"type":"string"},"attachedDocumentSha256":{"type":["string","null"],"description":"sha256 del AttachedDocument leído del sistema de facturación para esta validación; null si el paquete no envía XML o no se pudo leer."},"rulesVersion":{"type":"string"},"contextDigest":{"type":"string"},"referencesDigest":{"type":"string"},"validatedAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"}},"required":["id","revision","outcome","current","contentDigest","attachedDocumentSha256","rulesVersion","contextDigest","referencesDigest","validatedAt"]},"lastAttempt":{"type":["object","null"],"properties":{"id":{"type":"string"},"revision":{"type":"integer"},"outcome":{"$ref":"#/components/schemas/DispatchOutcome"},"environment":{"$ref":"#/components/schemas/WorkspaceEnvironment"},"attemptedAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"},"completedAt":{"type":["string","null"],"description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"},"procesoId":{"type":["string","null"]},"cuv":{"type":["string","null"],"description":"Solo presente si el recibo es aceptado y verificado."},"message":{"type":["string","null"]},"requestDigest":{"type":"string"},"reconciliation":{"type":["object","null"],"properties":{"evidenceCuv":{"type":"string"},"outcome":{"type":"string","enum":["accepted","inconclusive"]},"reconciledAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"}},"required":["evidenceCuv","outcome","reconciledAt"]}},"required":["id","revision","outcome","environment","attemptedAt","completedAt","procesoId","cuv","message","requestDigest","reconciliation"]},"createdByUserId":{"type":["string","null"]},"createdAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"},"updatedAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"},"ripsPayloadJson":{"type":["string","null"],"description":"Texto RIPS original exacto de la primera revisión."},"workingPayloadJson":{"type":["string","null"],"description":"RIPS de trabajo de la revisión vigente."},"provenance":{"$ref":"#/components/schemas/RipsPackageProvenance"}},"required":["id","kind","status","revision","isActive","statusMessage","numFactura","numNota","tipoNota","cufeOrCude","attachedDocument","sourceInvoiceId","sourceCreditNoteId","sourceDebitNoteId","sourcePackageId","procesoId","cuv","validation","lastAttempt","createdByUserId","createdAt","updatedAt","ripsPayloadJson","workingPayloadJson","provenance"]},"RipsPackageProvenance":{"type":["object","null"],"properties":{"sourceProfile":{"type":"string"},"declaration":{"type":["string","null"],"enum":["user-declared","server-guided",null]},"inputFormat":{"type":["string","null"],"enum":["json","csv",null]},"changeCount":{"type":"integer"},"inputCount":{"type":"integer"}},"required":["sourceProfile","declaration","inputFormat","changeCount","inputCount"]},"CreateRipsPackageInput":{"type":"object","properties":{"kind":{"$ref":"#/components/schemas/RipsPackageKind"},"origin":{"type":"string","enum":["upload","guided"],"default":"upload","description":"guided usa el contrato guiado del portal (perfil nativo); upload conserva la declaración de origen."},"guidedContractVersion":{"type":"number","enum":[1]},"rips":{"$ref":"#/components/schemas/RipsDraftPayload"},"attachedDocument":{"$ref":"#/components/schemas/AttachedDocumentInput"},"sourcePackageId":{"type":["string","null"],"minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Paquete aceptado de referencia para notas de ajuste o débito."},"ripsSourceProfile":{"type":"string","enum":["history","native-d558206","ministry-v003-20260715"]},"ripsImportSource":{"$ref":"#/components/schemas/RipsImportSource"},"inputProvenance":{"$ref":"#/components/schemas/RipsInputProvenance"}},"required":["kind"],"additionalProperties":false},"RipsDraftPayload":{"anyOf":[{"$ref":"#/components/schemas/DraftRipsDTO"},{"type":"string","maxLength":25000000,"description":"Texto JSON UTF-8 original. Se conserva sin reformatear. Use esta opción para importar un origen que todavía necesita correcciones; valide antes de enviar."},{"type":"null"}],"description":"Objeto RIPS tipado e incompleto, texto JSON exacto o null. Las acciones solo XML exigen null al enviar. El sobre externo de esta API nunca acepta xmlFevFile."},"DraftRipsDTO":{"type":"object","properties":{"numDocumentoIdObligado":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"numFactura":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"tipoNota":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"numNota":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"usuarios":{"type":["array","null"],"items":{"$ref":"#/components/schemas/DraftUsuarioDTO"},"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."}},"additionalProperties":{},"description":"Campos del contrato nativo; admite borradores incompletos y conserva campos de origen adicionales. Guardar no autoriza el envío."},"DraftUsuarioDTO":{"type":"object","properties":{"tipoDocumentoIdentificacion":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"numDocumentoIdentificacion":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"tipoUsuario":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"fechaNacimiento":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codSexo":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codPaisResidencia":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codPaisOrigen":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codMunicipioResidencia":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"codZonaTerritorialResidencia":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"incapacidad":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"consecutivo":{"type":["number","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"registroSIRAS":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"servicios":{"type":["object","null"],"properties":{"consultas":{"type":["array","null"],"items":{"$ref":"#/components/schemas/DraftConsultaDTO"},"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"procedimientos":{"type":["array","null"],"items":{"$ref":"#/components/schemas/DraftProcedimientoDTO"},"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"urgencias":{"type":["array","null"],"items":{"$ref":"#/components/schemas/DraftUrgenciaDTO"},"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"hospitalizacion":{"type":["array","null"],"items":{"$ref":"#/components/schemas/DraftHospitalizacionDTO"},"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"recienNacidos":{"type":["array","null"],"items":{"$ref":"#/components/schemas/DraftRecienNacidoDTO"},"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"medicamentos":{"type":["array","null"],"items":{"$ref":"#/components/schemas/DraftMedicamentoDTO"},"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"otrosServicios":{"type":["array","null"],"items":{"$ref":"#/components/schemas/DraftOtrosServicioDTO"},"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."}},"additionalProperties":{},"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."}},"additionalProperties":{},"description":"Campos del contrato nativo; admite borradores incompletos y conserva campos de origen adicionales. Guardar no autoriza el envío."},"AttachedDocumentInput":{"type":["object","null"],"properties":{"documentKind":{"$ref":"#/components/schemas/AttachedDocumentKind"},"number":{"type":"string","minLength":1,"maxLength":40,"description":"Número del documento en el sistema de facturación, por ejemplo SETP990000001."}},"required":["documentKind","number"],"additionalProperties":false,"description":"Documento del sistema de facturación cuyo AttachedDocument acompaña el paquete. RipsCloud no recibe ni guarda el XML: lo lee del sistema de facturación en cada operación. null quita la referencia."},"RipsImportSource":{"type":"object","properties":{"format":{"type":"string","enum":["csv"]},"text":{"type":"string","maxLength":10000000},"fileName":{"type":"string","maxLength":255},"cells":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":200},"text":{"type":"string","maxLength":10000},"row":{"type":"integer","minimum":1},"column":{"type":"integer","minimum":1}},"required":["name","text","row"],"additionalProperties":false},"maxItems":200000}},"required":["format","text","cells"],"additionalProperties":false,"description":"Evidencia exacta de una importación CSV. Se conserva y se valida; no sustituye la configuración del espacio."},"RipsInputProvenance":{"type":"object","properties":{"profile":{"type":"string","enum":["native-d558206"]},"prefills":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","enum":["codPrestador"]},"kind":{"type":"string","enum":["company-context"]},"value":{"type":"string","maxLength":20},"sourceId":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."}},"required":["field","kind","value","sourceId"],"additionalProperties":false},"maxItems":500},"edits":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9]*$"},"kind":{"type":"string","enum":["explicit-user-entry"]},"text":{"type":"string","maxLength":500}},"required":["field","kind","text"],"additionalProperties":false},"maxItems":5000}},"additionalProperties":false,"description":"Prellenados desde la empresa verificada y ediciones explícitas. No otorgan autoridad de envío."},"MedicationCatalogMetadata":{"type":"object","properties":{"pins":{"$ref":"#/components/schemas/MedicationCatalogPins"},"scope":{"type":"string"}},"required":["pins","scope"]},"MedicationCatalogPins":{"type":"object","properties":{"schemaVersion":{"type":"integer"},"cacheVersion":{"type":"integer"},"adapterVersion":{"type":"integer"},"catalogRevision":{"type":"string"},"CUM":{"type":"object","properties":{"bytes":{"type":"integer"},"sha256":{"type":"string"},"recordCount":{"type":"integer"}},"required":["bytes","sha256"]},"IUM":{"type":"object","properties":{"bytes":{"type":"integer"},"sha256":{"type":"string"},"recordCount":{"type":"integer"}},"required":["bytes","sha256"]},"compactAuthority":{"type":"object","properties":{"bytes":{"type":"integer"},"sha256":{"type":"string"},"recordCount":{"type":"integer"}},"required":["bytes","sha256"]},"assetManifest":{"type":"object","properties":{"bytes":{"type":"integer"},"sha256":{"type":"string"},"recordCount":{"type":"integer"}},"required":["bytes","sha256"]},"enrichment":{"type":"object","properties":{"sha256":{"type":"string"},"recordCount":{"type":"integer"},"rawSha256":{"type":"string"},"provenanceSha256":{"type":"string"}},"required":["sha256","recordCount","rawSha256","provenanceSha256"]}},"required":["schemaVersion","cacheVersion","adapterVersion","catalogRevision","CUM","IUM","compactAuthority","assetManifest","enrichment"],"description":"Versión y hashes del catálogo autorizado. Fije estos datos con su importación; no equivalen a un catálogo clínico completo."},"MedicationSearchResult":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/MedicationRow"}},"next":{"type":["string","null"]},"catalog":{"type":"string","enum":["CUM","IUM"]},"pins":{"$ref":"#/components/schemas/MedicationCatalogPins"}},"required":["items","next","catalog","pins"]},"MedicationRow":{"type":"object","properties":{"code":{"type":"string","description":"Código exacto para codTecnologiaSalud. Conservar ceros, guiones y mayúsculas.","example":"19983100-1"},"catalog":{"type":"string","enum":["CUM","IUM"]},"admission":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"catalog":{"type":"string","enum":["CUM","IUM"]},"code":{"type":"string"},"habilitado":{"type":"boolean","enum":[true]},"estadoEntidad":{"type":"boolean"}},"required":["ok","catalog","code","habilitado","estadoEntidad"]},"nameState":{"type":"string","enum":["reviewed","missing"]},"name":{"type":["string","null"]},"enrichment":{"type":["object","null"],"additionalProperties":{},"description":"Datos opcionales de presentación. No determinan dosis, vía, concentración ni otros campos clínicos."},"enrichmentProvenance":{"type":["object","null"],"additionalProperties":{},"description":"Evidencia del origen del enriquecimiento; puede faltar sin invalidar el código."}},"required":["code","catalog","admission","nameState","name","enrichment","enrichmentProvenance"],"description":"Código admitido por la versión fijada. La ausencia de nombre no implica código inválido. estadoEntidad y habilitado son conceptos distintos."},"MedicationDetail":{"type":"object","properties":{"code":{"type":"string","description":"Código exacto para codTecnologiaSalud. Conservar ceros, guiones y mayúsculas.","example":"19983100-1"},"catalog":{"type":"string","enum":["CUM","IUM"]},"admission":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"catalog":{"type":"string","enum":["CUM","IUM"]},"code":{"type":"string"},"habilitado":{"type":"boolean","enum":[true]},"estadoEntidad":{"type":"boolean"}},"required":["ok","catalog","code","habilitado","estadoEntidad"]},"nameState":{"type":"string","enum":["reviewed","missing"]},"name":{"type":["string","null"]},"enrichment":{"type":["object","null"],"additionalProperties":{},"description":"Datos opcionales de presentación. No determinan dosis, vía, concentración ni otros campos clínicos."},"enrichmentProvenance":{"type":["object","null"],"additionalProperties":{},"description":"Evidencia del origen del enriquecimiento; puede faltar sin invalidar el código."},"pins":{"$ref":"#/components/schemas/MedicationCatalogPins"}},"required":["code","catalog","admission","nameState","name","enrichment","enrichmentProvenance","pins"]},"ReviseRipsPackageInput":{"type":"object","properties":{"rips":{"$ref":"#/components/schemas/RipsDraftPayload"},"attachedDocument":{"$ref":"#/components/schemas/AttachedDocumentInput"},"sourcePackageId":{"type":["string","null"],"minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"ripsImportSource":{"$ref":"#/components/schemas/RipsImportSource"},"inputProvenance":{"$ref":"#/components/schemas/RipsInputProvenance"}},"additionalProperties":false,"description":"Crea una revisión nueva. Invalida la validación de la revisión anterior."},"RipsValidationResult":{"type":"object","properties":{"validation":{"$ref":"#/components/schemas/ValidationEvidence"},"payload":{"type":["object","null"],"properties":{"rips":{"$ref":"#/components/schemas/NativeRipsDTO"},"xmlFevFile":{"type":["string","null"]}},"required":["rips","xmlFevFile"],"description":"Cuerpo exacto que se enviaría con esta revisión, si es válida. xmlFevFile es el AttachedDocument leído del sistema de facturación."},"fieldConditions":{"type":["object","null"],"properties":{"native":{"type":"object","properties":{"profile":{"type":"string","enum":["native-d558206"]},"issues":{"type":"array","items":{"$ref":"#/components/schemas/FieldConditionIssue"}}},"required":["profile","issues"]},"ministry":{"type":"object","properties":{"ministryProfile":{"type":"string","enum":["ministry-v003-20260715"]},"signatureStatus":{"type":"string"},"attachedDocumentSha256":{"type":"string"},"issues":{"type":"array","items":{"$ref":"#/components/schemas/FieldConditionIssue"}}},"required":["ministryProfile","signatureStatus","issues"]}},"required":["native","ministry"]}},"required":["validation","payload","fieldConditions"]},"ValidationEvidence":{"type":"object","properties":{"id":{"type":"string"},"revision":{"type":"integer"},"outcome":{"type":"string","enum":["valid","invalid"]},"current":{"type":"boolean","description":"true si corresponde a la revisión y al contexto vigentes."},"contentDigest":{"type":"string"},"attachedDocumentSha256":{"type":["string","null"],"description":"sha256 del AttachedDocument leído del sistema de facturación para esta validación; null si el paquete no envía XML o no se pudo leer."},"rulesVersion":{"type":"string"},"contextDigest":{"type":"string"},"referencesDigest":{"type":"string"},"issues":{"type":"array","items":{"$ref":"#/components/schemas/ApiIssue"}},"validatedAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"}},"required":["id","revision","outcome","current","contentDigest","attachedDocumentSha256","rulesVersion","contextDigest","referencesDigest","issues","validatedAt"],"description":"Evidencia de validación de una revisión exacta: contenido, reglas, referencias y contexto usados."},"NativeRipsDTO":{"type":["object","null"],"properties":{"numDocumentoIdObligado":{"type":"string","minLength":3,"maxLength":12},"numFactura":{"type":["string","null"],"minLength":1,"maxLength":20},"tipoNota":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":2,"pattern":"^(?:\"|NC|ND|NA|RS)$"},{"type":"null"}]},"numNota":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":20},{"type":"null"}]},"usuarios":{"type":"array","items":{"$ref":"#/components/schemas/NativeUsuarioDTO"},"minItems":1}},"required":["numDocumentoIdObligado","usuarios"],"description":"Estructura del perfil native-d558206. Las reglas clínicas, referencias y catálogos se verifican por separado."},"NativeUsuarioDTO":{"type":"object","properties":{"tipoDocumentoIdentificacion":{"type":"string","minLength":2,"maxLength":2},"numDocumentoIdentificacion":{"type":"string","minLength":2,"maxLength":20,"pattern":"^[a-zA-Z0-9]+$"},"tipoUsuario":{"type":["string","null"],"minLength":2,"maxLength":2},"fechaNacimiento":{"type":"string","minLength":10,"maxLength":10,"pattern":"[1-2]{1}[9|0]{1}[0-9]{2}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])"},"codSexo":{"type":"string","pattern":"^(M|F|I)$"},"codPaisResidencia":{"type":["string","null"],"minLength":3,"maxLength":3},"codPaisOrigen":{"type":["string","null"],"minLength":3,"maxLength":3},"codMunicipioResidencia":{"type":["string","null"],"minLength":5,"maxLength":5},"codZonaTerritorialResidencia":{"type":["string","null"],"minLength":2,"maxLength":2},"incapacidad":{"type":"string","pattern":"^(SI|NO)$"},"consecutivo":{"type":"integer"},"registroSIRAS":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":60},{"type":"null"}]},"servicios":{"$ref":"#/components/schemas/NativeServiciosDTO"}},"required":["tipoDocumentoIdentificacion","numDocumentoIdentificacion","fechaNacimiento","codSexo","incapacidad","consecutivo","servicios"],"description":"Estructura del perfil native-d558206. Las reglas clínicas, referencias y catálogos se verifican por separado."},"NativeServiciosDTO":{"type":"object","properties":{"consultas":{"type":["array","null"],"items":{"$ref":"#/components/schemas/NativeConsultaDTO"}},"procedimientos":{"type":["array","null"],"items":{"$ref":"#/components/schemas/NativeProcedimientoDTO"}},"urgencias":{"type":["array","null"],"items":{"$ref":"#/components/schemas/NativeUrgenciaDTO"}},"hospitalizacion":{"type":["array","null"],"items":{"$ref":"#/components/schemas/NativeHospitalizacionDTO"}},"recienNacidos":{"type":["array","null"],"items":{"$ref":"#/components/schemas/NativeRecienNacidoDTO"}},"medicamentos":{"type":["array","null"],"items":{"$ref":"#/components/schemas/NativeMedicamentoDTO"}},"otrosServicios":{"type":["array","null"],"items":{"$ref":"#/components/schemas/NativeOtrosServicioDTO"}}},"description":"Estructura del perfil native-d558206. Las reglas clínicas, referencias y catálogos se verifican por separado."},"NativeConsultaDTO":{"type":"object","properties":{"codPrestador":{"type":"string","minLength":12,"maxLength":12,"description":"Código verificado del prestador o sede: use providerCodes de GET /rips-packages/context. No es el documento del profesional."},"fechaInicioAtencion":{"type":"string","pattern":"[1-2]{1}[9|0]{1}[0-9]{2}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (2[0-3]|[01][0-9]):[0-5][0-9]","description":"Hora local clínica en formato AAAA-MM-DD HH:mm. No convertir este campo a una marca UTC."},"numAutorizacion":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":30},{"type":"null"}]},"codConsulta":{"type":["string","null"],"minLength":6,"maxLength":6},"modalidadGrupoServicioTecSal":{"type":"string","minLength":2,"maxLength":2},"grupoServicios":{"type":"string","minLength":2,"maxLength":2},"codServicio":{"type":"integer","minimum":100,"maximum":9999},"finalidadTecnologiaSalud":{"type":"string","minLength":2,"maxLength":2},"causaMotivoAtencion":{"type":"string","minLength":2,"maxLength":2},"codDiagnosticoPrincipal":{"type":"string","minLength":4,"maxLength":4},"codDiagnosticoRelacionado1":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":4,"maxLength":4,"pattern":"^\\S+$"},{"type":"null"}]},"codDiagnosticoRelacionado2":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":4,"maxLength":4},{"type":"null"}]},"codDiagnosticoRelacionado3":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":4,"maxLength":4},{"type":"null"}]},"tipoDiagnosticoPrincipal":{"type":"string","minLength":2,"maxLength":2},"tipoDocumentoIdentificacion":{"type":"string","enum":["CC","CE","CD","PA","SC","PE","DE","PT"],"description":"Identificación del profesional que prestó el servicio; no es la identificación del paciente."},"numDocumentoIdentificacion":{"type":"string","minLength":2,"maxLength":20,"pattern":"^[a-zA-Z0-9]+$","description":"Identificación del profesional que prestó el servicio; no es la identificación del paciente."},"vrServicio":{"type":"number","minimum":0,"maximum":999999999999},"conceptoRecaudo":{"type":"string"},"valorPagoModerador":{"type":"number","minimum":0,"maximum":999999999999},"numFEVPagoModerador":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":30},{"type":"null"}]},"codigoVIDA":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}]},"codDiagnosticoPrincipalCIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}]},"nomCodDiagnosticoPrincipalCIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":1000},{"type":"null"}]},"codDiagnosticoPrincipalECIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}],"description":"Alias de entrada nativo; el envío usa el campo canónico. No envíe ambos con valores diferentes."},"nomCodDiagnosticoPrincipalECIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":1000},{"type":"null"}],"description":"Alias de entrada nativo; el envío usa el campo canónico. No envíe ambos con valores diferentes."},"codDiagnosticoRelacionado1CIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}]},"nomCodDiagnosticoRelacionado1CIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":1000},{"type":"null"}]},"codDiagnosticoRelacionado2CIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}]},"nomCodDiagnosticoRelacionado2CIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":1000},{"type":"null"}]},"codDiagnosticoRelacionado3CIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}]},"nomCodDiagnosticoRelacionado3CIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":1000},{"type":"null"}]},"consecutivo":{"type":"integer","minimum":1,"maximum":999999}},"required":["codPrestador","fechaInicioAtencion","modalidadGrupoServicioTecSal","grupoServicios","codServicio","finalidadTecnologiaSalud","causaMotivoAtencion","codDiagnosticoPrincipal","tipoDiagnosticoPrincipal","tipoDocumentoIdentificacion","numDocumentoIdentificacion","vrServicio","conceptoRecaudo","valorPagoModerador","consecutivo"],"description":"Estructura del perfil native-d558206. Las reglas clínicas, referencias y catálogos se verifican por separado."},"NativeProcedimientoDTO":{"type":"object","properties":{"codPrestador":{"type":"string","minLength":12,"maxLength":12,"description":"Código verificado del prestador o sede: use providerCodes de GET /rips-packages/context. No es el documento del profesional."},"fechaInicioAtencion":{"type":"string","pattern":"[1-2]{1}[9|0]{1}[0-9]{2}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (2[0-3]|[01][0-9]):[0-5][0-9]","description":"Hora local clínica en formato AAAA-MM-DD HH:mm. No convertir este campo a una marca UTC."},"idMIPRES":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","pattern":"^[0-9]{1,19}$"},{"type":"null"}]},"numAutorizacion":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":30},{"type":"null"}]},"codProcedimiento":{"type":["string","null"],"minLength":6,"maxLength":6},"viaIngresoServicioSalud":{"type":"string","minLength":2,"maxLength":2},"modalidadGrupoServicioTecSal":{"type":"string","minLength":2,"maxLength":2},"grupoServicios":{"type":"string","minLength":2,"maxLength":2},"codServicio":{"type":"integer","minimum":100,"maximum":9999},"finalidadTecnologiaSalud":{"type":"string","minLength":2,"maxLength":2},"tipoDocumentoIdentificacion":{"type":"string","enum":["CC","CE","CD","PA","SC","PE","DE","PT"],"description":"Identificación del profesional que prestó el servicio; no es la identificación del paciente."},"numDocumentoIdentificacion":{"type":"string","minLength":2,"maxLength":20,"pattern":"^[a-zA-Z0-9]+$","description":"Identificación del profesional que prestó el servicio; no es la identificación del paciente."},"codDiagnosticoPrincipal":{"type":"string","minLength":4,"maxLength":6},"codDiagnosticoRelacionado":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":4,"maxLength":4},{"type":"null"}]},"codComplicacion":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":4,"maxLength":4},{"type":"null"}]},"vrServicio":{"type":"number","minimum":0,"maximum":999999999999},"conceptoRecaudo":{"type":"string"},"valorPagoModerador":{"type":"number","minimum":0,"maximum":999999999999},"numFEVPagoModerador":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":30},{"type":"null"}]},"codDiagnosticoPrincipalCIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}]},"nomCodDiagnosticoPrincipalCIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":1000},{"type":"null"}]},"codDiagnosticoRelacionadoCIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}]},"nomCodDiagnosticoRelacionadoCIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":1000},{"type":"null"}]},"codComplicacionCIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}]},"nomCodComplicacionCIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":1000},{"type":"null"}]},"codigoVIDA":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}]},"consecutivo":{"type":"integer","minimum":1,"maximum":999999}},"required":["codPrestador","fechaInicioAtencion","viaIngresoServicioSalud","modalidadGrupoServicioTecSal","grupoServicios","codServicio","finalidadTecnologiaSalud","tipoDocumentoIdentificacion","numDocumentoIdentificacion","codDiagnosticoPrincipal","vrServicio","conceptoRecaudo","valorPagoModerador","consecutivo"],"description":"Estructura del perfil native-d558206. Las reglas clínicas, referencias y catálogos se verifican por separado."},"NativeUrgenciaDTO":{"type":"object","properties":{"codPrestador":{"type":"string","minLength":3,"maxLength":12,"description":"Código verificado del prestador o sede: use providerCodes de GET /rips-packages/context. No es el documento del profesional."},"fechaInicioAtencion":{"type":"string","pattern":"[1-2]{1}[9|0]{1}[0-9]{2}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (2[0-3]|[01][0-9]):[0-5][0-9]","description":"Hora local clínica en formato AAAA-MM-DD HH:mm. No convertir este campo a una marca UTC."},"causaMotivoAtencion":{"type":"string","minLength":2,"maxLength":2},"codDiagnosticoPrincipal":{"type":"string","minLength":4,"maxLength":6},"codDiagnosticoPrincipalE":{"type":"string","minLength":4,"maxLength":6},"codDiagnosticoRelacionadoE1":{"type":["string","null"],"minLength":4,"maxLength":6},"codDiagnosticoRelacionadoE2":{"type":["string","null"],"minLength":4,"maxLength":6},"codDiagnosticoRelacionadoE3":{"type":["string","null"],"minLength":4,"maxLength":6},"condicionDestinoUsuarioEgreso":{"type":"string","minLength":2,"maxLength":2},"codDiagnosticoCausaMuerte":{"type":["string","null"],"minLength":4,"maxLength":6},"fechaEgreso":{"type":"string","pattern":"[1-2]{1}[9|0]{1}[0-9]{2}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (2[0-3]|[01][0-9]):[0-5][0-9]","description":"Hora local clínica en formato AAAA-MM-DD HH:mm. No convertir este campo a una marca UTC."},"codDiagnosticoPrincipalCIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}]},"nomCodDiagnosticoPrincipalCIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":1000},{"type":"null"}]},"codDiagnosticoPrincipalECIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}]},"nomCodDiagnosticoPrincipalECIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":1000},{"type":"null"}]},"codDiagnosticoRelacionadoE1CIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}]},"nomCodDiagnosticoRelacionadoE1CIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":1000},{"type":"null"}]},"codDiagnosticoRelacionadoE2CIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}]},"nomCodDiagnosticoRelacionadoE2CIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":1000},{"type":"null"}]},"codDiagnosticoRelacionadoE3CIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}]},"nomCodDiagnosticoRelacionadoE3CIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":1000},{"type":"null"}]},"codDiagnosticoCausaMuerteCIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}]},"nomCodDiagnosticoCausaMuerteCIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":1000},{"type":"null"}]},"codigoVIDA":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}]},"consecutivo":{"type":"integer","minimum":1,"maximum":999999}},"required":["codPrestador","fechaInicioAtencion","causaMotivoAtencion","codDiagnosticoPrincipal","codDiagnosticoPrincipalE","condicionDestinoUsuarioEgreso","fechaEgreso","consecutivo"],"description":"Estructura del perfil native-d558206. Las reglas clínicas, referencias y catálogos se verifican por separado."},"NativeHospitalizacionDTO":{"type":"object","properties":{"codPrestador":{"type":"string","minLength":3,"maxLength":12,"description":"Código verificado del prestador o sede: use providerCodes de GET /rips-packages/context. No es el documento del profesional."},"viaIngresoServicioSalud":{"type":"string","minLength":2,"maxLength":2},"fechaInicioAtencion":{"type":"string","pattern":"[1-2]{1}[9|0]{1}[0-9]{2}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (2[0-3]|[01][0-9]):[0-5][0-9]","description":"Hora local clínica en formato AAAA-MM-DD HH:mm. No convertir este campo a una marca UTC."},"numAutorizacion":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":30},{"type":"null"}]},"causaMotivoAtencion":{"type":"string","minLength":2,"maxLength":2},"codDiagnosticoPrincipal":{"type":"string","minLength":4,"maxLength":4},"codDiagnosticoPrincipalE":{"type":"string","minLength":4,"maxLength":4},"codDiagnosticoRelacionadoE1":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":4,"maxLength":4},{"type":"null"}]},"codDiagnosticoRelacionadoE2":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":4,"maxLength":4},{"type":"null"}]},"codDiagnosticoRelacionadoE3":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":4,"maxLength":4},{"type":"null"}]},"codComplicacion":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":4,"maxLength":4},{"type":"null"}]},"condicionDestinoUsuarioEgreso":{"type":"string","minLength":2,"maxLength":2},"codDiagnosticoCausaMuerte":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":4,"maxLength":4},{"type":"null"}]},"fechaEgreso":{"type":"string","pattern":"[1-2]{1}[9|0]{1}[0-9]{2}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (2[0-3]|[01][0-9]):[0-5][0-9]","description":"Hora local clínica en formato AAAA-MM-DD HH:mm. No convertir este campo a una marca UTC."},"codDiagnosticoPrincipalECIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}]},"nomCodDiagnosticoPrincipalECIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":1000},{"type":"null"}]},"codDiagnosticoPrincipalCIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}]},"nomCodDiagnosticoPrincipalCIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":1000},{"type":"null"}]},"codDiagnosticoRelacionadoE1CIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}]},"nomCodDiagnosticoRelacionadoE1CIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":1000},{"type":"null"}]},"codDiagnosticoRelacionadoE2CIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}]},"nomCodDiagnosticoRelacionadoE2CIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":1000},{"type":"null"}]},"codDiagnosticoRelacionadoE3CIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}]},"nomCodDiagnosticoRelacionadoE3CIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":1000},{"type":"null"}]},"codComplicacionCIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}]},"nomCodComplicacionCIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":1000},{"type":"null"}]},"codDiagnosticoCausaMuerteCIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}]},"nomCodDiagnosticoCausaMuerteCIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":1000},{"type":"null"}]},"codigoVIDA":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}]},"consecutivo":{"type":"integer","minimum":1,"maximum":999999}},"required":["codPrestador","viaIngresoServicioSalud","fechaInicioAtencion","causaMotivoAtencion","codDiagnosticoPrincipal","codDiagnosticoPrincipalE","condicionDestinoUsuarioEgreso","fechaEgreso","consecutivo"],"description":"Estructura del perfil native-d558206. Las reglas clínicas, referencias y catálogos se verifican por separado."},"NativeRecienNacidoDTO":{"type":"object","properties":{"codPrestador":{"type":"string","minLength":3,"maxLength":12,"description":"Código verificado del prestador o sede: use providerCodes de GET /rips-packages/context. No es el documento del profesional."},"tipoDocumentoIdentificacion":{"type":"string","enum":["CN","RC","MS"]},"numDocumentoIdentificacion":{"type":"string","minLength":2,"maxLength":20,"pattern":"^[a-zA-Z0-9]+$"},"fechaNacimiento":{"type":"string","pattern":"[1-2]{1}[9|0]{1}[0-9]{2}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (2[0-3]|[01][0-9]):[0-5][0-9]"},"edadGestacional":{"type":"integer"},"numConsultasCPrenatal":{"type":"integer","minimum":0,"maximum":99},"codSexoBiologico":{"type":"string","minLength":2,"maxLength":2},"peso":{"type":"number"},"codDiagnosticoPrincipal":{"type":"string","minLength":4,"maxLength":4},"condicionDestinoUsuarioEgreso":{"type":"string","minLength":2,"maxLength":2},"codDiagnosticoCausaMuerte":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":4,"maxLength":4},{"type":"null"}]},"fechaEgreso":{"type":"string","pattern":"[1-2]{1}[9|0]{1}[0-9]{2}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (2[0-3]|[01][0-9]):[0-5][0-9]","description":"Hora local clínica en formato AAAA-MM-DD HH:mm. No convertir este campo a una marca UTC."},"codDiagnosticoPrincipalCIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}]},"nomCodDiagnosticoPrincipalCIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":1000},{"type":"null"}]},"codDiagnosticoPrincipalECIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}],"description":"Alias de entrada nativo; el envío usa el campo canónico. No envíe ambos con valores diferentes."},"nomCodDiagnosticoPrincipalECIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":1000},{"type":"null"}],"description":"Alias de entrada nativo; el envío usa el campo canónico. No envíe ambos con valores diferentes."},"codDiagnosticoCausaMuerteCIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}]},"nomCodDiagnosticoCausaMuerteCIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":1000},{"type":"null"}]},"codigoVIDA":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}]},"consecutivo":{"type":"integer","minimum":1,"maximum":999999}},"required":["codPrestador","tipoDocumentoIdentificacion","numDocumentoIdentificacion","fechaNacimiento","codSexoBiologico","codDiagnosticoPrincipal","condicionDestinoUsuarioEgreso","fechaEgreso","consecutivo"],"description":"Estructura del perfil native-d558206. Las reglas clínicas, referencias y catálogos se verifican por separado."},"NativeMedicamentoDTO":{"type":"object","properties":{"codPrestador":{"type":"string","minLength":3,"maxLength":12,"description":"Código verificado del prestador o sede: use providerCodes de GET /rips-packages/context. No es el documento del profesional."},"numAutorizacion":{"anyOf":[{"type":"string","enum":[""]},{"type":"string"},{"type":"null"}]},"idMIPRES":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","pattern":"^[0-9]{1,19}$"},{"type":"null"}]},"fechaDispensAdmon":{"type":"string","pattern":"[1-2]{1}[9|0]{1}[0-9]{2}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (2[0-3]|[01][0-9]):[0-5][0-9]","description":"Hora local clínica en formato AAAA-MM-DD HH:mm. No convertir este campo a una marca UTC."},"codDiagnosticoPrincipal":{"type":"string","minLength":4,"maxLength":4},"codDiagnosticoRelacionado":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":4,"maxLength":4},{"type":"null"}]},"tipoMedicamento":{"type":"string","minLength":2,"maxLength":2},"codTecnologiaSalud":{"type":"string","minLength":1,"maxLength":20},"nomTecnologiaSalud":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":128},{"type":"null"}]},"concentracionMedicamento":{"type":"integer","minimum":0,"maximum":999},"unidadMedida":{"type":"integer","minimum":0,"maximum":9999},"formaFarmaceutica":{"type":["string","null"],"minLength":6,"maxLength":8},"unidadMinDispensa":{"type":"integer","minimum":1,"maximum":999},"cantidadMedicamento":{"type":"integer","minimum":0,"maximum":9999999999},"diasTratamiento":{"type":"integer","minimum":0,"maximum":999},"tipoDocumentoIdentificacion":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","enum":["","CC","CE","CD","PA","SC","PE","DE","PT"]},{"type":"null"}],"description":"Identificación del profesional que prestó el servicio; no es la identificación del paciente."},"numDocumentoIdentificacion":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":4,"maxLength":20,"pattern":"^[a-zA-Z0-9]+$"},{"type":"null"}],"description":"Identificación del profesional que prestó el servicio; no es la identificación del paciente."},"vrUnitMedicamento":{"type":"number","minimum":0,"maximum":999999999999},"vrServicio":{"type":"number","minimum":0,"maximum":999999999999},"vrDispensacion":{"type":"number","minimum":0,"maximum":999999999999},"conceptoRecaudo":{"type":"string"},"valorPagoModerador":{"type":"number","minimum":0,"maximum":999999999999},"numFEVPagoModerador":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":30},{"type":"null"}]},"codDiagnosticoPrincipalECIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}]},"nomCodDiagnosticoPrincipalECIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":1000},{"type":"null"}]},"codDiagnosticoPrincipalCIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}],"description":"Alias de entrada nativo; el envío usa el campo canónico. No envíe ambos con valores diferentes."},"nomCodDiagnosticoPrincipalCIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":1000},{"type":"null"}],"description":"Alias de entrada nativo; el envío usa el campo canónico. No envíe ambos con valores diferentes."},"codDiagnosticoRelacionadoCIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}]},"nomCodDiagnosticoRelacionadoCIE11":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":1000},{"type":"null"}]},"codigoVIDA":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}]},"consecutivo":{"type":"integer","minimum":1,"maximum":999999}},"required":["codPrestador","fechaDispensAdmon","codDiagnosticoPrincipal","tipoMedicamento","codTecnologiaSalud","vrUnitMedicamento","vrServicio","vrDispensacion","conceptoRecaudo","valorPagoModerador","consecutivo"],"description":"Estructura del perfil native-d558206. Las reglas clínicas, referencias y catálogos se verifican por separado."},"NativeOtrosServicioDTO":{"type":"object","properties":{"codPrestador":{"type":"string","minLength":3,"maxLength":12,"description":"Código verificado del prestador o sede: use providerCodes de GET /rips-packages/context. No es el documento del profesional."},"numAutorizacion":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":30},{"type":"null"}]},"idMIPRES":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","pattern":"^[0-9]{1,19}$"},{"type":"null"}]},"fechaSuministroTecnologia":{"type":"string","pattern":"[1-2]{1}[9|0]{1}[0-9]{2}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (2[0-3]|[01][0-9]):[0-5][0-9]","description":"Hora local clínica en formato AAAA-MM-DD HH:mm. No convertir este campo a una marca UTC."},"tipoOS":{"type":"string","minLength":2,"maxLength":2,"pattern":"^(01|02|03|04|05|06)$"},"codTecnologiaSalud":{"type":"string","minLength":1,"maxLength":20},"nomTecnologiaSalud":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":128},{"type":"null"}]},"cantidadOS":{"type":"integer","minimum":1,"maximum":99999},"tipoDocumentoIdentificacion":{"type":["string","null"],"enum":["CC","CE","CD","PA","SC","PE","DE","PT",null],"description":"Identificación del profesional que prestó el servicio; no es la identificación del paciente."},"numDocumentoIdentificacion":{"type":["string","null"],"minLength":2,"maxLength":20,"pattern":"^[a-zA-Z0-9]+$","description":"Identificación del profesional que prestó el servicio; no es la identificación del paciente."},"vrUnitOS":{"type":"number","minimum":0,"maximum":999999999999999},"vrServicio":{"type":"number","minimum":0,"maximum":999999999999},"conceptoRecaudo":{"type":"string"},"valorPagoModerador":{"type":"number","minimum":0,"maximum":999999999999},"numFEVPagoModerador":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":30},{"type":"null"}]},"codigoVIDA":{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":0,"maxLength":256},{"type":"null"}]},"vrDispensacion":{"type":"number","minimum":0,"maximum":999999999999},"consecutivo":{"type":"integer","minimum":1,"maximum":999999}},"required":["codPrestador","fechaSuministroTecnologia","tipoOS","codTecnologiaSalud","vrUnitOS","vrServicio","conceptoRecaudo","valorPagoModerador","consecutivo"],"description":"Estructura del perfil native-d558206. Las reglas clínicas, referencias y catálogos se verifican por separado."},"FieldConditionIssue":{"type":"object","properties":{"path":{"type":"string"},"code":{"type":"string"},"severity":{"type":"string","enum":["error","notification","unresolved"]},"message":{"type":"string"},"source":{"type":"object","additionalProperties":{}}},"required":["path","code","severity","message","source"]},"RevisionInput":{"type":"object","properties":{"revision":{"type":"integer","minimum":1,"description":"Revisión exacta que se valida o envía."}},"required":["revision"],"additionalProperties":false},"RipsDispatchResult":{"type":"object","properties":{"attempt":{"$ref":"#/components/schemas/DispatchAttempt"},"package":{"$ref":"#/components/schemas/RipsPackage"},"replayed":{"type":"boolean","description":"true si se devolvió el resultado guardado de la misma clave e intención."}},"required":["attempt","package","replayed"],"description":"El intento no repite el cuerpo enviado: GET …/dispatches devuelve requestJson con cada intento."},"DispatchAttempt":{"type":"object","properties":{"id":{"type":"string"},"revision":{"type":"integer"},"outcome":{"$ref":"#/components/schemas/DispatchOutcome"},"environment":{"$ref":"#/components/schemas/WorkspaceEnvironment"},"attemptedAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"},"completedAt":{"type":["string","null"],"description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"},"procesoId":{"type":["string","null"]},"cuv":{"type":["string","null"],"description":"Solo presente si el recibo es aceptado y verificado."},"message":{"type":["string","null"]},"requestDigest":{"type":"string"},"validations":{"type":"array","items":{"$ref":"#/components/schemas/MinistryValidation"}},"requestJson":{"type":["string","null"],"description":"Cuerpo exacto enviado (snapshot inmutable)."},"responseJson":{"type":["string","null"],"description":"Respuesta exacta recibida, si existe."},"reconciliation":{"type":["object","null"],"properties":{"evidenceCuv":{"type":"string"},"outcome":{"type":"string","enum":["accepted","inconclusive"]},"reconciledAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"}},"required":["evidenceCuv","outcome","reconciledAt"]}},"required":["id","revision","outcome","environment","attemptedAt","completedAt","procesoId","cuv","message","requestDigest","validations","reconciliation"],"description":"Intento inmutable registrado antes de la llamada externa."},"MinistryValidation":{"type":"object","properties":{"class":{"type":"string"},"code":{"type":"string"},"description":{"type":["string","null"]},"observations":{"type":["string","null"]},"path":{"type":["string","null"]}},"required":["class","code","description","observations","path"]},"DispatchAttemptList":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/DispatchAttempt"}}},"required":["items"]},"ReconcileDispatchInput":{"type":"object","properties":{"attemptId":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"evidence":{"type":"object","properties":{"cuv":{"type":"string","pattern":"^[a-f0-9]{96}$","description":"CUV informado por el Ministerio para el intento incierto."}},"required":["cuv"],"additionalProperties":false}},"required":["attemptId","evidence"],"additionalProperties":false},"HealthInvoicePage":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/HealthInvoiceSummary"}},"page":{"type":"integer"},"pageSize":{"type":"integer"},"totalCount":{"type":"integer"}},"required":["items","page","pageSize","totalCount"]},"HealthInvoiceSummary":{"type":"object","properties":{"id":{"type":"string"},"clientId":{"type":"string"},"clientName":{"type":"string"},"locationId":{"type":["string","null"]},"totalAmount":{"type":"number"},"creditedAmount":{"type":"number","description":"Suma de notas crédito aceptadas o en curso."},"status":{"$ref":"#/components/schemas/HealthDocumentStatus"},"statusMessage":{"type":["string","null"]},"assignedInvoiceNumber":{"type":["string","null"]},"cufe":{"type":["string","null"]},"dianStatusCode":{"type":["string","null"]},"submittedByUserId":{"type":["string","null"]},"isActive":{"type":"boolean"},"createdAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"},"updatedAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"}},"required":["id","clientId","clientName","locationId","totalAmount","creditedAmount","status","statusMessage","assignedInvoiceNumber","cufe","dianStatusCode","submittedByUserId","isActive","createdAt","updatedAt"]},"HealthDocumentStatus":{"type":"string","enum":["Pending","Emitting","Accepted","Failed","Unknown","Historical"],"description":"Pending: sin emisión iniciada. Emitting: emisión en curso. Accepted: recibo de PahFacturar y validación DIAN. Failed: falló antes del proveedor o fue rechazado; un reintento crea una emisión nueva. Unknown: resultado incierto. Historical: registro importado sin recibo de este servidor; solo lectura."},"HealthInvoice":{"type":"object","properties":{"id":{"type":"string"},"clientId":{"type":"string"},"clientName":{"type":"string"},"locationId":{"type":["string","null"]},"totalAmount":{"type":"number"},"creditedAmount":{"type":"number","description":"Suma de notas crédito aceptadas o en curso."},"status":{"$ref":"#/components/schemas/HealthDocumentStatus"},"statusMessage":{"type":["string","null"]},"assignedInvoiceNumber":{"type":["string","null"]},"cufe":{"type":["string","null"]},"dianStatusCode":{"type":["string","null"]},"submittedByUserId":{"type":["string","null"]},"isActive":{"type":"boolean"},"createdAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"},"updatedAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"},"dianStatusDescription":{"type":["string","null"]},"invoiceResolutionId":{"type":["string","null"]},"invoicePayloadJson":{"type":["string","null"]},"workingRipsJson":{"type":["string","null"]},"invoiceDispatchHistory":{"type":"array","items":{"$ref":"#/components/schemas/DocumentAttempt"}},"ripsPackages":{"type":"array","items":{"$ref":"#/components/schemas/LinkedRipsPackage"}},"documentAvailability":{"type":"array","items":{"$ref":"#/components/schemas/ArtifactAvailability"}}},"required":["id","clientId","clientName","locationId","totalAmount","creditedAmount","status","statusMessage","assignedInvoiceNumber","cufe","dianStatusCode","submittedByUserId","isActive","createdAt","updatedAt","dianStatusDescription","invoiceResolutionId","invoicePayloadJson","workingRipsJson","invoiceDispatchHistory","ripsPackages","documentAvailability"],"description":"Factura de salud emitida por PahFacturar."},"DocumentAttempt":{"type":"object","properties":{"attemptedAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"},"succeeded":{"type":"boolean"},"errorMessage":{"type":["string","null"]},"requestPayload":{"type":"string"},"responsePayload":{"type":["string","null"]},"source":{"type":"string"}},"required":["attemptedAt","succeeded","errorMessage","requestPayload","responsePayload","source"]},"LinkedRipsPackage":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string"},"status":{"type":"string"},"cuv":{"type":["string","null"]}},"required":["id","kind","status","cuv"]},"ArtifactAvailability":{"type":"object","properties":{"documentType":{"type":"string","enum":["pdf","xml","attached"]},"isSupported":{"type":"boolean"},"canDownload":{"type":"boolean"}},"required":["documentType","isSupported","canDownload"]},"EmitHealthInvoiceInput":{"type":"object","properties":{"clientId":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"locationId":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"invoiceResolutionId":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"invoicePayload":{"$ref":"#/components/schemas/HealthInvoicePayload"},"rips":{"anyOf":[{"$ref":"#/components/schemas/DraftRipsDTO"},{"type":"string","maxLength":25000000,"description":"Texto JSON UTF-8 original. Se conserva sin reformatear. Use esta opción para importar un origen que todavía necesita correcciones; valide antes de enviar."},{"type":"null"}],"description":"RIPS de la factura (sin numFactura). Se conserva para preparar el paquete fev_rips."}},"required":["clientId","invoiceResolutionId","invoicePayload"],"additionalProperties":false},"HealthInvoicePayload":{"type":"object","properties":{"type_document_id":{"type":"integer","minimum":1,"maximum":5},"invoice_lines":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","minLength":1,"maxLength":500},"code":{"type":"string","maxLength":60},"invoiced_quantity":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"price_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"line_extension_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"base_quantity":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"unit_measure_id":{"type":"integer"},"type_item_identification_id":{"type":"integer"},"free_of_charge_indicator":{"type":"boolean"},"notes":{"type":"string","maxLength":500},"allowance_total":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"charge_total":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"tax_totals":{"type":"array","items":{"type":"object","properties":{"tax_id":{"type":"integer","minimum":1,"maximum":4},"tax_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"percent":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"taxable_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"}},"required":["tax_id","tax_amount","percent","taxable_amount"],"additionalProperties":false},"maxItems":4}},"required":["description","invoiced_quantity","price_amount","line_extension_amount"],"additionalProperties":false},"minItems":1,"maxItems":5000},"legal_monetary_totals":{"type":"object","properties":{"line_extension_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"tax_exclusive_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"tax_inclusive_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"payable_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"allowance_total_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"charge_total_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"}},"required":["line_extension_amount","tax_exclusive_amount","tax_inclusive_amount","payable_amount"],"additionalProperties":false},"tax_totals":{"type":"array","items":{"type":"object","properties":{"tax_id":{"type":"integer","minimum":1,"maximum":4},"tax_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"percent":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"taxable_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"}},"required":["tax_id","tax_amount","percent","taxable_amount"],"additionalProperties":false},"maxItems":4},"payment_form":{"type":"object","properties":{"payment_form_id":{"type":"integer","minimum":1,"maximum":2},"payment_method_id":{"type":"integer","minimum":1,"maximum":100},"payment_due_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Fecha AAAA-MM-DD.","example":"2026-10-15"},"duration_measure":{"anyOf":[{"type":"string"},{"type":"number"}]}},"required":["payment_form_id","payment_method_id"],"additionalProperties":false},"health_fields":{"$ref":"#/components/schemas/HealthFields"}},"required":["invoice_lines","legal_monetary_totals","payment_form","health_fields"],"additionalProperties":false,"description":"Contenido de negocio de la factura. El cliente, el prefijo, el número, la resolución, la fecha y la hora los asigna el servidor desde recursos verificados."},"HealthFields":{"type":"object","properties":{"invoice_period_start_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Fecha AAAA-MM-DD.","example":"2026-10-15"},"invoice_period_end_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Fecha AAAA-MM-DD.","example":"2026-10-15"},"health_type_operation_id":{"type":"string","minLength":1,"maxLength":12},"users_info":{"type":"array","items":{"type":"object","properties":{"provider_code":{"type":"string","pattern":"^\\d{10,12}$","description":"Debe ser un código de prestador o de sede verificado del espacio."},"health_coverage_id":{"type":"string","minLength":1,"maxLength":4},"health_contracting_payment_method_id":{"type":"string","minLength":1,"maxLength":4},"contract_number":{"type":"string","maxLength":60},"policy_number":{"type":"string","maxLength":60},"invoice_without_contract_reason":{"type":"string","maxLength":4},"co_payment":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"moderating_fee":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"recovery_fee":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"shared_payment":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"}},"required":["provider_code","health_coverage_id","health_contracting_payment_method_id"],"additionalProperties":false},"minItems":1,"maxItems":1}},"required":["invoice_period_start_date","invoice_period_end_date","health_type_operation_id","users_info"],"additionalProperties":false,"description":"Campos del sector salud. Obligatorios en la factura de salud."},"ReconcileHealthDocumentInput":{"type":"object","properties":{"providerDocumentId":{"type":"string","format":"uuid","description":"Identificador del documento en PahFacturar informado por el proveedor."}},"required":["providerDocumentId"],"additionalProperties":false,"description":"Requiere el UUID que ya conoce en PahFacturar. No busca documentos por número ni recupera un UUID perdido. Sin ese dato, conserve Unknown y solicite recuperación; nunca cree otra emisión como consulta."},"EmailResult":{"type":"object","properties":{"sent":{"type":"boolean","enum":[true]},"to":{"type":"string"},"cc":{"type":["string","null"]},"subject":{"type":"string"},"attachmentName":{"type":"string"},"attachmentSize":{"type":"integer"}},"required":["sent","to","cc","subject","attachmentName","attachmentSize"]},"CreditNotePage":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/CreditNoteSummary"}},"page":{"type":"integer"},"pageSize":{"type":"integer"},"totalCount":{"type":"integer"}},"required":["items","page","pageSize","totalCount"]},"CreditNoteSummary":{"type":"object","properties":{"id":{"type":"string"},"invoiceId":{"type":"string"},"originalInvoiceNumber":{"type":["string","null"]},"clientId":{"type":"string"},"clientName":{"type":"string"},"totalAmount":{"type":"number"},"status":{"$ref":"#/components/schemas/HealthDocumentStatus"},"statusMessage":{"type":["string","null"]},"assignedCreditNoteNumber":{"type":["string","null"]},"cude":{"type":["string","null"]},"discrepancyResponseCode":{"type":"integer"},"discrepancyResponseDescription":{"type":"string"},"ripsPackageKind":{"type":"string","enum":["nc_total","nc_parcial"]},"isActive":{"type":"boolean"},"createdAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"},"updatedAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"}},"required":["id","invoiceId","originalInvoiceNumber","clientId","clientName","totalAmount","status","statusMessage","assignedCreditNoteNumber","cude","discrepancyResponseCode","discrepancyResponseDescription","ripsPackageKind","isActive","createdAt","updatedAt"]},"CreditNoteContext":{"type":"object","properties":{"invoice":{"type":["object","null"],"properties":{"id":{"type":"string"},"invoiceNumber":{"type":["string","null"]},"cufe":{"type":["string","null"]},"issueDate":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"},"totalAmount":{"type":"number"},"creditedAmount":{"type":"number"},"availableAmount":{"type":"number"},"clientName":{"type":"string"},"clientId":{"type":"string"},"locationId":{"type":["string","null"]}},"required":["id","invoiceNumber","cufe","issueDate","totalAmount","creditedAmount","availableAmount","clientName","clientId","locationId"]},"patients":{"type":"array","items":{"type":"object","properties":{"consecutivo":{"type":"number"},"tipoDocumentoIdentificacion":{"type":"string"},"numDocumentoIdentificacion":{"type":"string"},"patientName":{"type":["string","null"]},"totalAmount":{"type":"number"},"services":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"consecutivo":{"type":"number"},"description":{"type":"string"},"amount":{"type":"number"},"serviceDate":{"type":["string","null"]}},"required":["category","consecutivo","description","amount","serviceDate"]}}},"required":["consecutivo","tipoDocumentoIdentificacion","numDocumentoIdentificacion","patientName","totalAmount","services"]}},"availableResolutions":{"type":"array","items":{"$ref":"#/components/schemas/Resolution"}},"canCreateCreditNote":{"type":"boolean"},"validationMessage":{"type":["string","null"]}},"required":["invoice","patients","availableResolutions","canCreateCreditNote","validationMessage"]},"CreditNote":{"type":"object","properties":{"id":{"type":"string"},"invoiceId":{"type":"string"},"originalInvoiceNumber":{"type":["string","null"]},"clientId":{"type":"string"},"clientName":{"type":"string"},"totalAmount":{"type":"number"},"status":{"$ref":"#/components/schemas/HealthDocumentStatus"},"statusMessage":{"type":["string","null"]},"assignedCreditNoteNumber":{"type":["string","null"]},"cude":{"type":["string","null"]},"discrepancyResponseCode":{"type":"integer"},"discrepancyResponseDescription":{"type":"string"},"ripsPackageKind":{"type":"string","enum":["nc_total","nc_parcial"]},"isActive":{"type":"boolean"},"createdAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"},"updatedAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"},"originalInvoiceCufe":{"type":["string","null"]},"dianStatusCode":{"type":["string","null"]},"dianStatusDescription":{"type":["string","null"]},"submittedByUserId":{"type":["string","null"]},"creditNotePayloadJson":{"type":["string","null"]},"workingRipsJson":{"type":["string","null"]},"dispatchHistory":{"type":"array","items":{"$ref":"#/components/schemas/DocumentAttempt"}},"ripsPackages":{"type":"array","items":{"$ref":"#/components/schemas/LinkedRipsPackage"}},"documentAvailability":{"type":"array","items":{"$ref":"#/components/schemas/ArtifactAvailability"}}},"required":["id","invoiceId","originalInvoiceNumber","clientId","clientName","totalAmount","status","statusMessage","assignedCreditNoteNumber","cude","discrepancyResponseCode","discrepancyResponseDescription","ripsPackageKind","isActive","createdAt","updatedAt","originalInvoiceCufe","dianStatusCode","dianStatusDescription","submittedByUserId","creditNotePayloadJson","workingRipsJson","dispatchHistory","ripsPackages","documentAvailability"],"description":"Nota crédito de salud emitida por PahFacturar."},"EmitCreditNoteInput":{"type":"object","properties":{"invoiceId":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"creditNoteResolutionId":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"locationId":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"discrepancyResponseCode":{"type":"integer","minimum":1,"maximum":6,"description":"Código DIAN de concepto. 2 = anulación total."},"discrepancyResponseDescription":{"type":"string","minLength":1,"maxLength":500},"selectedItems":{"type":"array","items":{"$ref":"#/components/schemas/CreditNoteSelection"},"maxItems":5000},"creditNotePayload":{"$ref":"#/components/schemas/CreditNotePayload"}},"required":["invoiceId","creditNoteResolutionId","discrepancyResponseCode","discrepancyResponseDescription","creditNotePayload"],"additionalProperties":false},"CreditNoteSelection":{"type":"object","properties":{"patientConsecutivo":{"type":"integer","minimum":0},"includeAllServices":{"type":"boolean"},"selectedServices":{"type":"array","items":{"type":"object","properties":{"serviceCategory":{"type":"string","enum":["consultas","procedimientos","urgencias","hospitalizacion","recienNacidos","medicamentos","otrosServicios"]},"serviceConsecutivo":{"type":"integer","minimum":0}},"required":["serviceCategory","serviceConsecutivo"],"additionalProperties":false},"maxItems":5000}},"required":["patientConsecutivo"],"additionalProperties":false},"CreditNotePayload":{"type":"object","properties":{"credit_note_lines":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","minLength":1,"maxLength":500},"code":{"type":"string","maxLength":60},"invoiced_quantity":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"price_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"line_extension_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"base_quantity":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"unit_measure_id":{"type":"integer"},"type_item_identification_id":{"type":"integer"},"free_of_charge_indicator":{"type":"boolean"},"notes":{"type":"string","maxLength":500},"allowance_total":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"charge_total":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"tax_totals":{"type":"array","items":{"type":"object","properties":{"tax_id":{"type":"integer","minimum":1,"maximum":4},"tax_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"percent":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"taxable_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"}},"required":["tax_id","tax_amount","percent","taxable_amount"],"additionalProperties":false},"maxItems":4}},"required":["description","invoiced_quantity","price_amount","line_extension_amount"],"additionalProperties":false},"minItems":1,"maxItems":5000},"legal_monetary_totals":{"type":"object","properties":{"line_extension_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"tax_exclusive_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"tax_inclusive_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"payable_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"allowance_total_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"charge_total_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"}},"required":["line_extension_amount","tax_exclusive_amount","tax_inclusive_amount","payable_amount"],"additionalProperties":false},"tax_totals":{"type":"array","items":{"type":"object","properties":{"tax_id":{"type":"integer","minimum":1,"maximum":4},"tax_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"percent":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"taxable_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"}},"required":["tax_id","tax_amount","percent","taxable_amount"],"additionalProperties":false},"maxItems":4},"payment_form":{"type":"object","properties":{"payment_form_id":{"type":"integer","minimum":1,"maximum":2},"payment_method_id":{"type":"integer","minimum":1,"maximum":100},"payment_due_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Fecha AAAA-MM-DD.","example":"2026-10-15"},"duration_measure":{"anyOf":[{"type":"string"},{"type":"number"}]}},"required":["payment_form_id","payment_method_id"],"additionalProperties":false}},"required":["credit_note_lines","legal_monetary_totals"],"additionalProperties":false,"description":"Líneas y totales de la nota. Cliente, referencia a la factura, campos de salud y numeración los deriva el servidor de la factura aceptada."},"DebitNotePage":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/DebitNoteSummary"}},"page":{"type":"integer"},"pageSize":{"type":"integer"},"totalCount":{"type":"integer"}},"required":["items","page","pageSize","totalCount"]},"DebitNoteSummary":{"type":"object","properties":{"id":{"type":"string"},"invoiceId":{"type":"string"},"originalInvoiceNumber":{"type":["string","null"]},"clientId":{"type":"string"},"clientName":{"type":"string"},"totalAmount":{"type":"number"},"status":{"$ref":"#/components/schemas/HealthDocumentStatus"},"statusMessage":{"type":["string","null"]},"assignedDebitNoteNumber":{"type":["string","null"]},"cude":{"type":["string","null"]},"discrepancyResponseCode":{"$ref":"#/components/schemas/DebitNoteReasonCode"},"discrepancyResponseDescription":{"type":"string"},"ripsPackageKind":{"type":"string","enum":["nd"]},"isActive":{"type":"boolean"},"createdAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"},"updatedAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"}},"required":["id","invoiceId","originalInvoiceNumber","clientId","clientName","totalAmount","status","statusMessage","assignedDebitNoteNumber","cude","discrepancyResponseCode","discrepancyResponseDescription","ripsPackageKind","isActive","createdAt","updatedAt"]},"DebitNoteReasonCode":{"type":"integer","minimum":1,"maximum":4,"description":"DIAN catálogo 89: 1 Intereses; 2 Gastos por cobrar; 3 Cambio del valor; 4 Otros. No son los conceptos de nota crédito.","example":3},"DebitNoteContext":{"type":"object","properties":{"invoice":{"type":["object","null"],"properties":{"id":{"type":"string"},"invoiceNumber":{"type":["string","null"]},"cufe":{"type":["string","null"]},"issueDate":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"},"totalAmount":{"type":"number"},"clientName":{"type":"string"},"clientId":{"type":"string"},"locationId":{"type":["string","null"]}},"required":["id","invoiceNumber","cufe","issueDate","totalAmount","clientName","clientId","locationId"]},"patients":{"type":"array","items":{"type":"object","properties":{"consecutivo":{"type":"number"},"tipoDocumentoIdentificacion":{"type":"string"},"numDocumentoIdentificacion":{"type":"string"},"patientName":{"type":["string","null"]},"totalAmount":{"type":"number"},"services":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"consecutivo":{"type":"number"},"description":{"type":"string"},"amount":{"type":"number"},"serviceDate":{"type":["string","null"]}},"required":["category","consecutivo","description","amount","serviceDate"]}}},"required":["consecutivo","tipoDocumentoIdentificacion","numDocumentoIdentificacion","patientName","totalAmount","services"]}},"rips":{"type":["object","null"],"properties":{"numDocumentoIdObligado":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"numFactura":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"tipoNota":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"numNota":{"type":["string","null"],"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."},"usuarios":{"type":["array","null"],"items":{"$ref":"#/components/schemas/DraftUsuarioDTO"},"description":"Opcional en borrador. Su presencia, formato y condiciones para envío se verifican al validar la revisión."}},"additionalProperties":{},"description":"Demografía autorizada de los pacientes de la factura, con todas las listas de servicios vacías. Seleccione los pacientes y agregue los servicios adicionales. null impide preparar una nota con origen RIPS verificado."},"availableResolutions":{"type":"array","items":{"$ref":"#/components/schemas/Resolution"}},"canCreateDebitNote":{"type":"boolean"},"validationMessage":{"type":["string","null"]}},"required":["invoice","patients","rips","availableResolutions","canCreateDebitNote","validationMessage"],"description":"Factura aceptada, pacientes originales y resoluciones para una nota débito. Los servicios se muestran como referencia, no se copian: capture los servicios adicionales en rips. No aplica el saldo de notas crédito."},"DebitNote":{"type":"object","properties":{"id":{"type":"string"},"invoiceId":{"type":"string"},"originalInvoiceNumber":{"type":["string","null"]},"clientId":{"type":"string"},"clientName":{"type":"string"},"totalAmount":{"type":"number"},"status":{"$ref":"#/components/schemas/HealthDocumentStatus"},"statusMessage":{"type":["string","null"]},"assignedDebitNoteNumber":{"type":["string","null"]},"cude":{"type":["string","null"]},"discrepancyResponseCode":{"$ref":"#/components/schemas/DebitNoteReasonCode"},"discrepancyResponseDescription":{"type":"string"},"ripsPackageKind":{"type":"string","enum":["nd"]},"isActive":{"type":"boolean"},"createdAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"},"updatedAt":{"type":"string","description":"Fecha y hora ISO 8601 (UTC).","example":"2026-10-15T12:00:00.000Z"},"originalInvoiceCufe":{"type":["string","null"]},"dianStatusCode":{"type":["string","null"]},"dianStatusDescription":{"type":["string","null"]},"submittedByUserId":{"type":["string","null"]},"debitNotePayloadJson":{"type":["string","null"]},"workingRipsJson":{"type":["string","null"]},"dispatchHistory":{"type":"array","items":{"$ref":"#/components/schemas/DocumentAttempt"}},"ripsPackages":{"type":"array","items":{"$ref":"#/components/schemas/LinkedRipsPackage"}},"documentAvailability":{"type":"array","items":{"$ref":"#/components/schemas/ArtifactAvailability"}}},"required":["id","invoiceId","originalInvoiceNumber","clientId","clientName","totalAmount","status","statusMessage","assignedDebitNoteNumber","cude","discrepancyResponseCode","discrepancyResponseDescription","ripsPackageKind","isActive","createdAt","updatedAt","originalInvoiceCufe","dianStatusCode","dianStatusDescription","submittedByUserId","debitNotePayloadJson","workingRipsJson","dispatchHistory","ripsPackages","documentAvailability"],"description":"Nota débito de salud emitida por PahFacturar. Su CUDE no es el CUFE de la factura original. Emitir la nota no envía su RIPS al Ministerio."},"EmitDebitNoteInput":{"type":"object","properties":{"invoiceId":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"debitNoteResolutionId":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"discrepancyResponseCode":{"$ref":"#/components/schemas/DebitNoteReasonCode"},"discrepancyResponseDescription":{"type":"string","minLength":1,"maxLength":500},"debitNotePayload":{"$ref":"#/components/schemas/DebitNotePayload"},"rips":{"$ref":"#/components/schemas/SupplementalDebitRips"}},"required":["invoiceId","debitNoteResolutionId","discrepancyResponseCode","discrepancyResponseDescription","debitNotePayload","rips"],"additionalProperties":false,"description":"Emite una nota débito de salud a partir de una factura aceptada, con sus servicios RIPS adicionales. El importe no se limita por el saldo de notas crédito. Requiere datos adicionales explícitos; nunca reutiliza automáticamente los servicios facturados."},"DebitNotePayload":{"type":"object","properties":{"debit_note_lines":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","minLength":1,"maxLength":500},"code":{"type":"string","maxLength":60},"invoiced_quantity":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"price_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"line_extension_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"base_quantity":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"unit_measure_id":{"type":"integer"},"type_item_identification_id":{"type":"integer"},"free_of_charge_indicator":{"type":"boolean"},"notes":{"type":"string","maxLength":500},"allowance_total":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"charge_total":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"tax_totals":{"type":"array","items":{"type":"object","properties":{"tax_id":{"type":"integer","minimum":1,"maximum":4},"tax_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"percent":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"taxable_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"}},"required":["tax_id","tax_amount","percent","taxable_amount"],"additionalProperties":false},"maxItems":4}},"required":["description","invoiced_quantity","price_amount","line_extension_amount"],"additionalProperties":false},"minItems":1,"maxItems":5000},"legal_monetary_totals":{"type":"object","properties":{"line_extension_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"tax_exclusive_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"tax_inclusive_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"payable_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"allowance_total_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"charge_total_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"}},"required":["line_extension_amount","tax_exclusive_amount","tax_inclusive_amount","payable_amount"],"additionalProperties":false},"tax_totals":{"type":"array","items":{"type":"object","properties":{"tax_id":{"type":"integer","minimum":1,"maximum":4},"tax_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"percent":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"},"taxable_amount":{"anyOf":[{"type":"string","pattern":"^-?\\d{1,15}(?:\\.\\d{1,6})?$"},{"type":"number"}],"description":"Valor decimal como texto (\"100.00\") o número JSON. Use punto decimal, sin separador de miles; se admiten hasta 6 decimales.","example":"100000.00"}},"required":["tax_id","tax_amount","percent","taxable_amount"],"additionalProperties":false},"maxItems":4},"payment_form":{"type":"object","properties":{"payment_form_id":{"type":"integer","minimum":1,"maximum":2},"payment_method_id":{"type":"integer","minimum":1,"maximum":100},"payment_due_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Fecha AAAA-MM-DD.","example":"2026-10-15"},"duration_measure":{"anyOf":[{"type":"string"},{"type":"number"}]}},"required":["payment_form_id","payment_method_id"],"additionalProperties":false}},"required":["debit_note_lines","legal_monetary_totals"],"additionalProperties":false,"description":"Valores adicionales de la nota débito. El servidor deriva cliente, factura referenciada, campos de salud y numeración. No envíe billing_reference, customer, número ni fecha. El total debe ser positivo y corresponder a los servicios RIPS adicionales."},"SupplementalDebitRips":{"anyOf":[{"$ref":"#/components/schemas/DraftRipsDTO"},{"type":"string","minLength":1,"maxLength":25000000,"description":"JSON exacto de los servicios adicionales. Se conserva para preparar el paquete ND."}],"description":"RIPS adicional obligatorio, escrito expresamente por el cliente. No se copian los servicios de la factura. Los pacientes deben pertenecer a la factura de origen y los valores adicionales deben coincidir con la nota. El servidor fija numFactura, tipoNota=ND y numNota desde la factura y la nota emitidas."}},"parameters":{}},"paths":{"/health":{"get":{"operationId":"system.getHealth","tags":["Estado"],"summary":"Estado de la API","description":"Comprueba que la configuración de orígenes externos sea válida para el entorno. No llama a servicios externos. Pública.","security":[],"x-ripscloud-auth":"public","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":null,"responses":{"200":{"description":"Configuración válida.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}},"400":{"description":"Rechazo: invalid_request, invalid_query.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"503":{"description":"Rechazo: upstream_configuration_invalid.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"upstream_configuration_invalid":{"summary":"La conexión con el servicio externo no está configurada para este entorno.","value":{"error":{"code":"upstream_configuration_invalid","message":"La conexión con el servicio externo no está configurada para este entorno."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/health/upstreams":{"get":{"operationId":"system.getUpstreamHealth","tags":["Estado"],"summary":"Conectividad con FEV RIPS y PahFacturar","description":"Realiza una lectura inofensiva de la documentación pública de cada origen configurado. Nunca consulta producción desde sandbox. Pública.","security":[],"x-ripscloud-auth":"public","x-ripscloud-effect":"external","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":null,"responses":{"200":{"description":"Ambos orígenes respondieron.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpstreamHealth"}}}},"400":{"description":"Rechazo: invalid_request, invalid_query.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"502":{"description":"Rechazo: invoice_provider_unavailable.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invoice_provider_unavailable":{"summary":"PahFacturar no respondió. Intente de nuevo.","value":{"error":{"code":"invoice_provider_unavailable","message":"PahFacturar no respondió. Intente de nuevo."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"503":{"description":"Rechazo: upstream_configuration_invalid.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"upstream_configuration_invalid":{"summary":"La conexión con el servicio externo no está configurada para este entorno.","value":{"error":{"code":"upstream_configuration_invalid","message":"La conexión con el servicio externo no está configurada para este entorno."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/me":{"get":{"operationId":"account.getProfile","tags":["Mi cuenta"],"summary":"Consultar mi perfil","description":"Requiere un token de acceso. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"user","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","responses":{"200":{"description":"Perfil verificado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountProfile"}}}},"400":{"description":"Rechazo: invalid_request, invalid_query.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/me/workspaces":{"get":{"operationId":"account.listWorkspaces","tags":["Mi cuenta"],"summary":"Listar mis espacios activos","description":"Solo membresías activas en espacios activos. Un administrador de la plataforma sin membresías ve los espacios activos en modo operador. Requiere un token de acceso. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"user","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","responses":{"200":{"description":"Espacios del usuario.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyWorkspaces"}}}},"400":{"description":"Rechazo: invalid_request, invalid_query.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/me/tokens":{"get":{"operationId":"personalAccessTokens.list","tags":["Mi cuenta"],"summary":"Listar mis tokens personales","description":"Requiere el token de una sesión OpenAuth con celular. Un PAT no puede administrar tokens. Devuelve tokens vigentes; includeArchived=true incluye vencidos y revocados del usuario. Requiere la sesión interactiva del usuario. Un PAT no puede administrar tokens. No admite PAT; use una sesión interactiva.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"session","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":null,"parameters":[{"schema":{"type":"string","enum":["true","false"],"description":"Incluir registros archivados."},"required":false,"description":"Incluir registros archivados.","name":"includeArchived","in":"query"}],"responses":{"200":{"description":"Tokens personales del usuario, sin secretos.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonalAccessTokenList"},"example":{"items":[{"id":"33333333-3333-4333-8333-333333333333","name":"Sistema clínico","prefix":"rc_pat_33333333333343338333333333333333","workspaceIds":["11111111-1111-4111-8111-111111111111"],"scopes":["read","write","send"],"createdAt":"2026-10-16T12:00:00.000Z","expiresAt":"2027-01-14T12:00:00.000Z","lastUsedAt":null,"revokedAt":null}]}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"post":{"operationId":"personalAccessTokens.create","tags":["Mi cuenta"],"summary":"Crear un token personal","description":"Cree el PAT en el portal con su sesión de celular. Envíelo después como Authorization: Bearer rc_pat_…. El secreto se devuelve una sola vez. Se admiten hasta 50 tokens activos por usuario. No hay repetición idempotente del secreto. Si pierde la respuesta, revoque el token desde el listado y cree otro. Requiere la sesión interactiva del usuario. Un PAT no puede administrar tokens. No admite PAT; use una sesión interactiva. Límite del cuerpo HTTP: 1000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"session","x-ripscloud-effect":"write","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":null,"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePersonalAccessTokenInput"},"examples":{"integration":{"summary":"Integración con lectura, escritura y envío","value":{"name":"Sistema clínico","workspaceIds":["11111111-1111-4111-8111-111111111111"],"scopes":["read","write","send"],"expiresInDays":90}}}}}},"responses":{"201":{"description":"Token creado. Copie el secreto antes de salir.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatedPersonalAccessToken"},"example":{"token":"rc_pat_33333333333343338333333333333333_AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA","personalAccessToken":{"id":"33333333-3333-4333-8333-333333333333","name":"Sistema clínico","prefix":"rc_pat_33333333333343338333333333333333","workspaceIds":["11111111-1111-4111-8111-111111111111"],"scopes":["read","write","send"],"createdAt":"2026-10-16T12:00:00.000Z","expiresAt":"2027-01-14T12:00:00.000Z","lastUsedAt":null,"revokedAt":null}}}}},"400":{"description":"Rechazo: invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, invalid_request, server_owned_field, invalid_query, invalid_path.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_json":{"summary":"El cuerpo no es JSON válido.","value":{"error":{"code":"invalid_json","message":"El cuerpo no es JSON válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_key":{"summary":"El cuerpo repite una clave JSON.","value":{"error":{"code":"duplicate_key","message":"El cuerpo repite una clave JSON."},"requestId":"11111111-1111-4111-8111-111111111111"}},"json_syntax":{"summary":"El JSON tiene un error de sintaxis.","value":{"error":{"code":"json_syntax","message":"El JSON tiene un error de sintaxis."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: authorization_changed, personal_access_token_limit_reached.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"authorization_changed":{"summary":"Los permisos cambiaron durante la operación. No se realizó ningún efecto externo.","value":{"error":{"code":"authorization_changed","message":"Los permisos cambiaron durante la operación. No se realizó ningún efecto externo."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_limit_reached":{"summary":"El usuario ya tiene 50 tokens personales activos. Revoque uno antes de crear otro.","value":{"error":{"code":"personal_access_token_limit_reached","message":"El usuario ya tiene 50 tokens personales activos. Revoque uno antes de crear otro."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/me/tokens/{tokenId}":{"delete":{"operationId":"personalAccessTokens.revoke","tags":["Mi cuenta"],"summary":"Revocar un token personal","description":"Revoca solo un token del usuario actual. Conserva el registro para auditoría. Repetir la revocación devuelve éxito; el token no se puede reactivar. Requiere la sesión interactiva del usuario. Un PAT no puede administrar tokens. No admite PAT; use una sesión interactiva.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"session","x-ripscloud-effect":"write","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":null,"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"tokenId","in":"path"}],"responses":{"200":{"description":"Token revocado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"},"example":{"ok":true}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}":{"get":{"operationId":"workspace.get","tags":["Espacio"],"summary":"Consultar el espacio","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"}],"responses":{"200":{"description":"Espacio y rol del usuario.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workspace"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/dashboard":{"get":{"operationId":"workspace.getDashboard","tags":["Espacio"],"summary":"Resumen del espacio","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"}],"responses":{"200":{"description":"Resumen.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Dashboard"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/company":{"get":{"operationId":"company.get","tags":["Configuración"],"summary":"Consultar la empresa y sus sedes","description":"Requiere el rol Admin en el espacio de la ruta. No admite PAT; use una sesión interactiva.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"admin","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":null,"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"}],"responses":{"200":{"description":"Empresa.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Company"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required, workspace_admin_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"patch":{"operationId":"company.update","tags":["Configuración"],"summary":"Actualizar la empresa y sus sedes","description":"Requiere el rol Admin en el espacio de la ruta. Acepta Idempotency-Key. No admite PAT; use una sesión interactiva. Límite del cuerpo HTTP: 1000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"admin","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":null,"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCompanyInput"}}}},"responses":{"200":{"description":"Empresa actualizada.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Company"}}}},"400":{"description":"Rechazo: invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, invalid_request, server_owned_field, invalid_query, invalid_path.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_json":{"summary":"El cuerpo no es JSON válido.","value":{"error":{"code":"invalid_json","message":"El cuerpo no es JSON válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_key":{"summary":"El cuerpo repite una clave JSON.","value":{"error":{"code":"duplicate_key","message":"El cuerpo repite una clave JSON."},"requestId":"11111111-1111-4111-8111-111111111111"}},"json_syntax":{"summary":"El JSON tiene un error de sintaxis.","value":{"error":{"code":"json_syntax","message":"El JSON tiene un error de sintaxis."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required, workspace_admin_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, duplicate_resource.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_resource":{"summary":"Ya existe un recurso con la misma identificación.","value":{"error":{"code":"duplicate_resource","message":"Ya existe un recurso con la misma identificación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/environment":{"get":{"operationId":"environment.get","tags":["Configuración"],"summary":"Consultar el ambiente","description":"Requiere una membresía activa en el espacio de la ruta. No admite PAT; use una sesión interactiva.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":null,"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"}],"responses":{"200":{"description":"Ambiente.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentSettings"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"put":{"operationId":"environment.update","tags":["Configuración"],"summary":"Cambiar el ambiente","description":"El ambiente determina el destino FEV RIPS y el ambiente DIAN de PahFacturar. El sandbox solo admite habilitación. Requiere el rol Admin en el espacio de la ruta. Acepta Idempotency-Key. No admite PAT; use una sesión interactiva. Límite del cuerpo HTTP: 1000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"admin","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":null,"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEnvironmentInput"}}}},"responses":{"200":{"description":"Ambiente actualizado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentSettings"}}}},"400":{"description":"Rechazo: invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, invalid_request, server_owned_field, invalid_query, invalid_path, invalid_environment, sandbox_requires_habilitacion.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_json":{"summary":"El cuerpo no es JSON válido.","value":{"error":{"code":"invalid_json","message":"El cuerpo no es JSON válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_key":{"summary":"El cuerpo repite una clave JSON.","value":{"error":{"code":"duplicate_key","message":"El cuerpo repite una clave JSON."},"requestId":"11111111-1111-4111-8111-111111111111"}},"json_syntax":{"summary":"El JSON tiene un error de sintaxis.","value":{"error":{"code":"json_syntax","message":"El JSON tiene un error de sintaxis."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required, workspace_admin_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/members":{"get":{"operationId":"members.list","tags":["Miembros"],"summary":"Listar miembros","description":"Requiere el rol Admin en el espacio de la ruta. No admite PAT; use una sesión interactiva.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"admin","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":null,"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"}],"responses":{"200":{"description":"Miembros activos.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemberList"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required, workspace_admin_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"post":{"operationId":"members.add","tags":["Miembros"],"summary":"Agregar o reactivar un miembro por celular","description":"Requiere el rol Admin en el espacio de la ruta. Acepta Idempotency-Key. No admite PAT; use una sesión interactiva. Límite del cuerpo HTTP: 1000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"admin","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":null,"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddMemberInput"}}}},"responses":{"201":{"description":"Membresía activa.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceMember"}}}},"400":{"description":"Rechazo: invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, invalid_request, server_owned_field, invalid_query, invalid_path, invalid_phone.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_json":{"summary":"El cuerpo no es JSON válido.","value":{"error":{"code":"invalid_json","message":"El cuerpo no es JSON válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_key":{"summary":"El cuerpo repite una clave JSON.","value":{"error":{"code":"duplicate_key","message":"El cuerpo repite una clave JSON."},"requestId":"11111111-1111-4111-8111-111111111111"}},"json_syntax":{"summary":"El JSON tiene un error de sintaxis.","value":{"error":{"code":"json_syntax","message":"El JSON tiene un error de sintaxis."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required, workspace_admin_required, global_identity_admin_required, global_user_disabled.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, phone_in_use, membership_update_failed, authorization_changed.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_in_use":{"summary":"El celular pertenece a otra identidad.","value":{"error":{"code":"phone_in_use","message":"El celular pertenece a otra identidad."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/integrations/sispro":{"get":{"operationId":"sispro.getSettings","tags":["Integraciones"],"summary":"Consultar la integración SISPRO","description":"Requiere el rol Admin en el espacio de la ruta. No admite PAT; use una sesión interactiva.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"admin","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":null,"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"}],"responses":{"200":{"description":"Estado sin secretos.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SisproSettings"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required, workspace_admin_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/integrations/sispro/session":{"post":{"operationId":"sispro.login","tags":["Integraciones"],"summary":"Autenticar el espacio en SISPRO","description":"Verifica las credenciales con SISPRO para el NIT del espacio, guarda la sesión y actualiza la empresa y sus sedes desde el token verificado. Requiere el rol Admin en el espacio de la ruta. No admite PAT; use una sesión interactiva. Límite del cuerpo HTTP: 1000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"admin","x-ripscloud-effect":"external","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":null,"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SisproLoginInput"}}}},"responses":{"200":{"description":"Sesión SISPRO activa.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SisproLoginResult"}}}},"400":{"description":"Rechazo: invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, invalid_request, server_owned_field, invalid_query, invalid_path, invalid_nit, tenant_nit_mismatch, sispro_login_failed.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_json":{"summary":"El cuerpo no es JSON válido.","value":{"error":{"code":"invalid_json","message":"El cuerpo no es JSON válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_key":{"summary":"El cuerpo repite una clave JSON.","value":{"error":{"code":"duplicate_key","message":"El cuerpo repite una clave JSON."},"requestId":"11111111-1111-4111-8111-111111111111"}},"json_syntax":{"summary":"El JSON tiene un error de sintaxis.","value":{"error":{"code":"json_syntax","message":"El JSON tiene un error de sintaxis."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required, workspace_admin_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"502":{"description":"Rechazo: invalid_sispro_token, sispro_unavailable.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_sispro_token":{"summary":"SISPRO devolvió un token no válido.","value":{"error":{"code":"invalid_sispro_token","message":"SISPRO devolvió un token no válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"sispro_unavailable":{"summary":"SISPRO no respondió. Intente de nuevo.","value":{"error":{"code":"sispro_unavailable","message":"SISPRO no respondió. Intente de nuevo."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"503":{"description":"Rechazo: upstream_configuration_invalid.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"upstream_configuration_invalid":{"summary":"La conexión con el servicio externo no está configurada para este entorno.","value":{"error":{"code":"upstream_configuration_invalid","message":"La conexión con el servicio externo no está configurada para este entorno."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/integrations/pahfacturar":{"get":{"operationId":"invoiceProvider.getSettings","tags":["Integraciones"],"summary":"Consultar la integración PahFacturar","description":"Requiere el rol Admin en el espacio de la ruta. No admite PAT; use una sesión interactiva.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"admin","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":null,"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"}],"responses":{"200":{"description":"Estado sin secretos.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoiceProviderSettings"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required, workspace_admin_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"put":{"operationId":"invoiceProvider.updateSettings","tags":["Integraciones"],"summary":"Configurar la integración PahFacturar","description":"Requiere el rol Admin en el espacio de la ruta. Acepta Idempotency-Key. No admite PAT; use una sesión interactiva. Límite del cuerpo HTTP: 1000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"admin","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":null,"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateInvoiceProviderInput"}}}},"responses":{"200":{"description":"Configuración guardada.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoiceProviderSettings"}}}},"400":{"description":"Rechazo: invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, invalid_request, server_owned_field, invalid_query, invalid_path.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_json":{"summary":"El cuerpo no es JSON válido.","value":{"error":{"code":"invalid_json","message":"El cuerpo no es JSON válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_key":{"summary":"El cuerpo repite una clave JSON.","value":{"error":{"code":"duplicate_key","message":"El cuerpo repite una clave JSON."},"requestId":"11111111-1111-4111-8111-111111111111"}},"json_syntax":{"summary":"El JSON tiene un error de sintaxis.","value":{"error":{"code":"json_syntax","message":"El JSON tiene un error de sintaxis."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required, workspace_admin_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/integrations/pahfacturar/verification":{"post":{"operationId":"invoiceProvider.verify","tags":["Integraciones"],"summary":"Verificar la integración PahFacturar","description":"Comprueba con PahFacturar que el token accede a la empresa configurada, con el NIT y el ambiente DIAN del espacio. No emite documentos. Requiere el rol Admin en el espacio de la ruta. No admite PAT; use una sesión interactiva.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"admin","x-ripscloud-effect":"external","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":null,"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"}],"responses":{"200":{"description":"Integración verificada.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoiceProviderVerification"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required, workspace_admin_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: invoice_provider_not_configured, invoice_provider_company_mismatch.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invoice_provider_not_configured":{"summary":"Configure el token, el equipo y la empresa de PahFacturar.","value":{"error":{"code":"invoice_provider_not_configured","message":"Configure el token, el equipo y la empresa de PahFacturar."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invoice_provider_company_mismatch":{"summary":"La empresa de PahFacturar no corresponde al NIT o al ambiente del espacio.","value":{"error":{"code":"invoice_provider_company_mismatch","message":"La empresa de PahFacturar no corresponde al NIT o al ambiente del espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"502":{"description":"Rechazo: invoice_provider_unavailable.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invoice_provider_unavailable":{"summary":"PahFacturar no respondió. Intente de nuevo.","value":{"error":{"code":"invoice_provider_unavailable","message":"PahFacturar no respondió. Intente de nuevo."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"503":{"description":"Rechazo: upstream_configuration_invalid.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"upstream_configuration_invalid":{"summary":"La conexión con el servicio externo no está configurada para este entorno.","value":{"error":{"code":"upstream_configuration_invalid","message":"La conexión con el servicio externo no está configurada para este entorno."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/members/{userId}":{"patch":{"operationId":"members.update","tags":["Miembros"],"summary":"Actualizar una membresía","description":"Requiere el rol Admin en el espacio de la ruta. Acepta Idempotency-Key. No admite PAT; use una sesión interactiva. Límite del cuerpo HTTP: 1000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"admin","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":null,"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"userId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMemberInput"}}}},"responses":{"200":{"description":"Membresía actualizada.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceMember"}}}},"400":{"description":"Rechazo: invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, invalid_request, server_owned_field, invalid_query, invalid_path, invalid_phone.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_json":{"summary":"El cuerpo no es JSON válido.","value":{"error":{"code":"invalid_json","message":"El cuerpo no es JSON válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_key":{"summary":"El cuerpo repite una clave JSON.","value":{"error":{"code":"duplicate_key","message":"El cuerpo repite una clave JSON."},"requestId":"11111111-1111-4111-8111-111111111111"}},"json_syntax":{"summary":"El JSON tiene un error de sintaxis.","value":{"error":{"code":"json_syntax","message":"El JSON tiene un error de sintaxis."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required, workspace_admin_required, global_identity_admin_required, global_user_disabled.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, user_not_in_workspace.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"user_not_in_workspace":{"summary":"El usuario no pertenece al espacio.","value":{"error":{"code":"user_not_in_workspace","message":"El usuario no pertenece al espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, phone_in_use, cannot_remove_last_admin, membership_update_failed, authorization_changed.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_in_use":{"summary":"El celular pertenece a otra identidad.","value":{"error":{"code":"phone_in_use","message":"El celular pertenece a otra identidad."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"delete":{"operationId":"members.remove","tags":["Miembros"],"summary":"Archivar una membresía","description":"Borrado lógico. Agregar de nuevo el mismo celular reactiva la membresía. Requiere el rol Admin en el espacio de la ruta. Acepta Idempotency-Key. No admite PAT; use una sesión interactiva.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"admin","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":null,"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"userId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Membresía archivada.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required, workspace_admin_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, user_not_in_workspace.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"user_not_in_workspace":{"summary":"El usuario no pertenece al espacio.","value":{"error":{"code":"user_not_in_workspace","message":"El usuario no pertenece al espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, cannot_remove_last_admin, membership_update_failed, authorization_changed.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"cannot_remove_last_admin":{"summary":"El espacio debe conservar al menos un Admin activo.","value":{"error":{"code":"cannot_remove_last_admin","message":"El espacio debe conservar al menos un Admin activo."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/patients":{"get":{"operationId":"patients.list","tags":["Pacientes"],"summary":"Listar pacientes","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","maxLength":128},"required":false,"name":"q","in":"query"},{"schema":{"type":"string","enum":["true","false"],"description":"Incluir registros archivados."},"required":false,"description":"Incluir registros archivados.","name":"includeArchived","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":500,"description":"Tamaño máximo de página. Predeterminado: 100; máximo: 500.","example":100},"required":false,"description":"Tamaño máximo de página. Predeterminado: 100; máximo: 500.","name":"limit","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":100000,"description":"Registros que se omiten. Predeterminado: 0. Para avanzar use offset + items.length.","example":0},"required":false,"description":"Registros que se omiten. Predeterminado: 0. Para avanzar use offset + items.length.","name":"offset","in":"query"}],"responses":{"200":{"description":"Página de registros activos (o archivados si se solicita).","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatientList"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"post":{"operationId":"patients.create","tags":["Pacientes"],"summary":"Crear un paciente","description":"Requiere una membresía activa en el espacio de la ruta. Acepta Idempotency-Key. PAT: requiere el permiso write y acceso al espacio de la ruta, cuando exista. Límite del cuerpo HTTP: 1000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":"write","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatientInput"}}}},"responses":{"201":{"description":"Registro creado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Patient"}}}},"400":{"description":"Rechazo: invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, invalid_request, server_owned_field, invalid_query, invalid_path.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_json":{"summary":"El cuerpo no es JSON válido.","value":{"error":{"code":"invalid_json","message":"El cuerpo no es JSON válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_key":{"summary":"El cuerpo repite una clave JSON.","value":{"error":{"code":"duplicate_key","message":"El cuerpo repite una clave JSON."},"requestId":"11111111-1111-4111-8111-111111111111"}},"json_syntax":{"summary":"El JSON tiene un error de sintaxis.","value":{"error":{"code":"json_syntax","message":"El JSON tiene un error de sintaxis."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, duplicate_resource.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_resource":{"summary":"Ya existe un recurso con la misma identificación.","value":{"error":{"code":"duplicate_resource","message":"Ya existe un recurso con la misma identificación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/patients/{patientId}":{"get":{"operationId":"patients.get","tags":["Pacientes"],"summary":"Consultar un paciente","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"patientId","in":"path"}],"responses":{"200":{"description":"Registro.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Patient"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"patch":{"operationId":"patients.update","tags":["Pacientes"],"summary":"Actualizar un paciente","description":"Requiere una membresía activa en el espacio de la ruta. Acepta Idempotency-Key. PAT: requiere el permiso write y acceso al espacio de la ruta, cuando exista. Límite del cuerpo HTTP: 1000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":"write","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"patientId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatientPatch"}}}},"responses":{"200":{"description":"Registro actualizado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Patient"}}}},"400":{"description":"Rechazo: invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, invalid_request, server_owned_field, invalid_query, invalid_path.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_json":{"summary":"El cuerpo no es JSON válido.","value":{"error":{"code":"invalid_json","message":"El cuerpo no es JSON válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_key":{"summary":"El cuerpo repite una clave JSON.","value":{"error":{"code":"duplicate_key","message":"El cuerpo repite una clave JSON."},"requestId":"11111111-1111-4111-8111-111111111111"}},"json_syntax":{"summary":"El JSON tiene un error de sintaxis.","value":{"error":{"code":"json_syntax","message":"El JSON tiene un error de sintaxis."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, resource_archived, duplicate_resource.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"resource_archived":{"summary":"El recurso está archivado.","value":{"error":{"code":"resource_archived","message":"El recurso está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"delete":{"operationId":"patients.archive","tags":["Pacientes"],"summary":"Archivar un paciente","description":"Borrado lógico. El registro se conserva para auditoría y se puede reactivar. Requiere una membresía activa en el espacio de la ruta. Acepta Idempotency-Key. PAT: requiere el permiso write y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":"write","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"patientId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Registro archivado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Patient"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/patients/{patientId}/restore":{"post":{"operationId":"patients.restore","tags":["Pacientes"],"summary":"Reactivar un paciente","description":"Requiere una membresía activa en el espacio de la ruta. Acepta Idempotency-Key. PAT: requiere el permiso write y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":"write","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"patientId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Registro reactivado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Patient"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, duplicate_resource.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_resource":{"summary":"Ya existe un recurso con la misma identificación.","value":{"error":{"code":"duplicate_resource","message":"Ya existe un recurso con la misma identificación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/specialists":{"get":{"operationId":"specialists.list","tags":["Profesionales"],"summary":"Listar profesionales","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","maxLength":128},"required":false,"name":"q","in":"query"},{"schema":{"type":"string","enum":["true","false"],"description":"Incluir registros archivados."},"required":false,"description":"Incluir registros archivados.","name":"includeArchived","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":500,"description":"Tamaño máximo de página. Predeterminado: 100; máximo: 500.","example":100},"required":false,"description":"Tamaño máximo de página. Predeterminado: 100; máximo: 500.","name":"limit","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":100000,"description":"Registros que se omiten. Predeterminado: 0. Para avanzar use offset + items.length.","example":0},"required":false,"description":"Registros que se omiten. Predeterminado: 0. Para avanzar use offset + items.length.","name":"offset","in":"query"}],"responses":{"200":{"description":"Página de registros activos (o archivados si se solicita).","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpecialistList"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"post":{"operationId":"specialists.create","tags":["Profesionales"],"summary":"Crear un profesional","description":"Requiere una membresía activa en el espacio de la ruta. Acepta Idempotency-Key. PAT: requiere el permiso write y acceso al espacio de la ruta, cuando exista. Límite del cuerpo HTTP: 1000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":"write","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpecialistInput"}}}},"responses":{"201":{"description":"Registro creado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Specialist"}}}},"400":{"description":"Rechazo: invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, invalid_request, server_owned_field, invalid_query, invalid_path.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_json":{"summary":"El cuerpo no es JSON válido.","value":{"error":{"code":"invalid_json","message":"El cuerpo no es JSON válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_key":{"summary":"El cuerpo repite una clave JSON.","value":{"error":{"code":"duplicate_key","message":"El cuerpo repite una clave JSON."},"requestId":"11111111-1111-4111-8111-111111111111"}},"json_syntax":{"summary":"El JSON tiene un error de sintaxis.","value":{"error":{"code":"json_syntax","message":"El JSON tiene un error de sintaxis."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, duplicate_resource.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_resource":{"summary":"Ya existe un recurso con la misma identificación.","value":{"error":{"code":"duplicate_resource","message":"Ya existe un recurso con la misma identificación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/specialists/{specialistId}":{"get":{"operationId":"specialists.get","tags":["Profesionales"],"summary":"Consultar un profesional","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"specialistId","in":"path"}],"responses":{"200":{"description":"Registro.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Specialist"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"patch":{"operationId":"specialists.update","tags":["Profesionales"],"summary":"Actualizar un profesional","description":"Requiere una membresía activa en el espacio de la ruta. Acepta Idempotency-Key. PAT: requiere el permiso write y acceso al espacio de la ruta, cuando exista. Límite del cuerpo HTTP: 1000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":"write","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"specialistId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpecialistPatch"}}}},"responses":{"200":{"description":"Registro actualizado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Specialist"}}}},"400":{"description":"Rechazo: invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, invalid_request, server_owned_field, invalid_query, invalid_path.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_json":{"summary":"El cuerpo no es JSON válido.","value":{"error":{"code":"invalid_json","message":"El cuerpo no es JSON válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_key":{"summary":"El cuerpo repite una clave JSON.","value":{"error":{"code":"duplicate_key","message":"El cuerpo repite una clave JSON."},"requestId":"11111111-1111-4111-8111-111111111111"}},"json_syntax":{"summary":"El JSON tiene un error de sintaxis.","value":{"error":{"code":"json_syntax","message":"El JSON tiene un error de sintaxis."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, resource_archived, duplicate_resource.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"resource_archived":{"summary":"El recurso está archivado.","value":{"error":{"code":"resource_archived","message":"El recurso está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"delete":{"operationId":"specialists.archive","tags":["Profesionales"],"summary":"Archivar un profesional","description":"Borrado lógico. El registro se conserva para auditoría y se puede reactivar. Requiere una membresía activa en el espacio de la ruta. Acepta Idempotency-Key. PAT: requiere el permiso write y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":"write","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"specialistId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Registro archivado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Specialist"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/specialists/{specialistId}/restore":{"post":{"operationId":"specialists.restore","tags":["Profesionales"],"summary":"Reactivar un profesional","description":"Requiere una membresía activa en el espacio de la ruta. Acepta Idempotency-Key. PAT: requiere el permiso write y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":"write","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"specialistId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Registro reactivado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Specialist"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, duplicate_resource.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_resource":{"summary":"Ya existe un recurso con la misma identificación.","value":{"error":{"code":"duplicate_resource","message":"Ya existe un recurso con la misma identificación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/services":{"get":{"operationId":"services.list","tags":["Servicios"],"summary":"Listar servicios guardados","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","maxLength":128},"required":false,"name":"q","in":"query"},{"schema":{"type":"string","enum":["true","false"],"description":"Incluir registros archivados."},"required":false,"description":"Incluir registros archivados.","name":"includeArchived","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":500,"description":"Tamaño máximo de página. Predeterminado: 100; máximo: 500.","example":100},"required":false,"description":"Tamaño máximo de página. Predeterminado: 100; máximo: 500.","name":"limit","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":100000,"description":"Registros que se omiten. Predeterminado: 0. Para avanzar use offset + items.length.","example":0},"required":false,"description":"Registros que se omiten. Predeterminado: 0. Para avanzar use offset + items.length.","name":"offset","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":7},"required":false,"name":"category","in":"query"}],"responses":{"200":{"description":"Página de registros activos (o archivados si se solicita).","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceList"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"post":{"operationId":"services.create","tags":["Servicios"],"summary":"Crear un servicio guardado","description":"Requiere una membresía activa en el espacio de la ruta. Acepta Idempotency-Key. PAT: requiere el permiso write y acceso al espacio de la ruta, cuando exista. Límite del cuerpo HTTP: 1000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":"write","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceInput"}}}},"responses":{"201":{"description":"Registro creado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Service"}}}},"400":{"description":"Rechazo: invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, invalid_request, server_owned_field, invalid_query, invalid_path, invalid_service_category, invalid_medication_code, invalid_input_provenance, invalid_rips_input.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_json":{"summary":"El cuerpo no es JSON válido.","value":{"error":{"code":"invalid_json","message":"El cuerpo no es JSON válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_key":{"summary":"El cuerpo repite una clave JSON.","value":{"error":{"code":"duplicate_key","message":"El cuerpo repite una clave JSON."},"requestId":"11111111-1111-4111-8111-111111111111"}},"json_syntax":{"summary":"El JSON tiene un error de sintaxis.","value":{"error":{"code":"json_syntax","message":"El JSON tiene un error de sintaxis."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, duplicate_resource.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_resource":{"summary":"Ya existe un recurso con la misma identificación.","value":{"error":{"code":"duplicate_resource","message":"Ya existe un recurso con la misma identificación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/services/{serviceId}":{"get":{"operationId":"services.get","tags":["Servicios"],"summary":"Consultar un servicio guardado","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"serviceId","in":"path"}],"responses":{"200":{"description":"Registro.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Service"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"patch":{"operationId":"services.update","tags":["Servicios"],"summary":"Actualizar un servicio guardado","description":"Requiere una membresía activa en el espacio de la ruta. Acepta Idempotency-Key. PAT: requiere el permiso write y acceso al espacio de la ruta, cuando exista. Límite del cuerpo HTTP: 1000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":"write","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"serviceId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServicePatch"}}}},"responses":{"200":{"description":"Registro actualizado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Service"}}}},"400":{"description":"Rechazo: invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, invalid_request, server_owned_field, invalid_query, invalid_path, invalid_service_category, invalid_medication_code, invalid_input_provenance, invalid_rips_input.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_json":{"summary":"El cuerpo no es JSON válido.","value":{"error":{"code":"invalid_json","message":"El cuerpo no es JSON válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_key":{"summary":"El cuerpo repite una clave JSON.","value":{"error":{"code":"duplicate_key","message":"El cuerpo repite una clave JSON."},"requestId":"11111111-1111-4111-8111-111111111111"}},"json_syntax":{"summary":"El JSON tiene un error de sintaxis.","value":{"error":{"code":"json_syntax","message":"El JSON tiene un error de sintaxis."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, resource_archived, duplicate_resource.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"resource_archived":{"summary":"El recurso está archivado.","value":{"error":{"code":"resource_archived","message":"El recurso está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"delete":{"operationId":"services.archive","tags":["Servicios"],"summary":"Archivar un servicio guardado","description":"Borrado lógico. El registro se conserva para auditoría y se puede reactivar. Requiere una membresía activa en el espacio de la ruta. Acepta Idempotency-Key. PAT: requiere el permiso write y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":"write","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"serviceId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Registro archivado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Service"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/services/{serviceId}/restore":{"post":{"operationId":"services.restore","tags":["Servicios"],"summary":"Reactivar un servicio guardado","description":"Requiere una membresía activa en el espacio de la ruta. Acepta Idempotency-Key. PAT: requiere el permiso write y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":"write","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"serviceId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Registro reactivado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Service"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, duplicate_resource.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_resource":{"summary":"Ya existe un recurso con la misma identificación.","value":{"error":{"code":"duplicate_resource","message":"Ya existe un recurso con la misma identificación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/clients":{"get":{"operationId":"clients.list","tags":["Pagadores"],"summary":"Listar pagadores","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","maxLength":128},"required":false,"name":"q","in":"query"},{"schema":{"type":"string","enum":["true","false"],"description":"Incluir registros archivados."},"required":false,"description":"Incluir registros archivados.","name":"includeArchived","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":500,"description":"Tamaño máximo de página. Predeterminado: 100; máximo: 500.","example":100},"required":false,"description":"Tamaño máximo de página. Predeterminado: 100; máximo: 500.","name":"limit","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":100000,"description":"Registros que se omiten. Predeterminado: 0. Para avanzar use offset + items.length.","example":0},"required":false,"description":"Registros que se omiten. Predeterminado: 0. Para avanzar use offset + items.length.","name":"offset","in":"query"}],"responses":{"200":{"description":"Página de registros activos (o archivados si se solicita).","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientList"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"post":{"operationId":"clients.create","tags":["Pagadores"],"summary":"Crear un pagador","description":"Requiere una membresía activa en el espacio de la ruta. Acepta Idempotency-Key. PAT: requiere el permiso write y acceso al espacio de la ruta, cuando exista. Límite del cuerpo HTTP: 1000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":"write","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientInput"}}}},"responses":{"201":{"description":"Registro creado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Client"}}}},"400":{"description":"Rechazo: invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, invalid_request, server_owned_field, invalid_query, invalid_path.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_json":{"summary":"El cuerpo no es JSON válido.","value":{"error":{"code":"invalid_json","message":"El cuerpo no es JSON válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_key":{"summary":"El cuerpo repite una clave JSON.","value":{"error":{"code":"duplicate_key","message":"El cuerpo repite una clave JSON."},"requestId":"11111111-1111-4111-8111-111111111111"}},"json_syntax":{"summary":"El JSON tiene un error de sintaxis.","value":{"error":{"code":"json_syntax","message":"El JSON tiene un error de sintaxis."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, duplicate_resource.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_resource":{"summary":"Ya existe un recurso con la misma identificación.","value":{"error":{"code":"duplicate_resource","message":"Ya existe un recurso con la misma identificación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/clients/{clientId}":{"get":{"operationId":"clients.get","tags":["Pagadores"],"summary":"Consultar un pagador","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"clientId","in":"path"}],"responses":{"200":{"description":"Registro.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Client"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"patch":{"operationId":"clients.update","tags":["Pagadores"],"summary":"Actualizar un pagador","description":"Requiere una membresía activa en el espacio de la ruta. Acepta Idempotency-Key. PAT: requiere el permiso write y acceso al espacio de la ruta, cuando exista. Límite del cuerpo HTTP: 1000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":"write","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"clientId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientPatch"}}}},"responses":{"200":{"description":"Registro actualizado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Client"}}}},"400":{"description":"Rechazo: invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, invalid_request, server_owned_field, invalid_query, invalid_path.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_json":{"summary":"El cuerpo no es JSON válido.","value":{"error":{"code":"invalid_json","message":"El cuerpo no es JSON válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_key":{"summary":"El cuerpo repite una clave JSON.","value":{"error":{"code":"duplicate_key","message":"El cuerpo repite una clave JSON."},"requestId":"11111111-1111-4111-8111-111111111111"}},"json_syntax":{"summary":"El JSON tiene un error de sintaxis.","value":{"error":{"code":"json_syntax","message":"El JSON tiene un error de sintaxis."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, resource_archived, duplicate_resource.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"resource_archived":{"summary":"El recurso está archivado.","value":{"error":{"code":"resource_archived","message":"El recurso está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"delete":{"operationId":"clients.archive","tags":["Pagadores"],"summary":"Archivar un pagador","description":"Borrado lógico. El registro se conserva para auditoría y se puede reactivar. Requiere una membresía activa en el espacio de la ruta. Acepta Idempotency-Key. PAT: requiere el permiso write y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":"write","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"clientId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Registro archivado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Client"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/clients/{clientId}/restore":{"post":{"operationId":"clients.restore","tags":["Pagadores"],"summary":"Reactivar un pagador","description":"Requiere una membresía activa en el espacio de la ruta. Acepta Idempotency-Key. PAT: requiere el permiso write y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":"write","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"clientId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Registro reactivado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Client"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, duplicate_resource.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_resource":{"summary":"Ya existe un recurso con la misma identificación.","value":{"error":{"code":"duplicate_resource","message":"Ya existe un recurso con la misma identificación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/invoice-resolutions":{"get":{"operationId":"invoiceResolutions.list","tags":["Resoluciones"],"summary":"Listar resoluciones de facturación","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","maxLength":128},"required":false,"name":"q","in":"query"},{"schema":{"type":"string","enum":["true","false"],"description":"Incluir registros archivados."},"required":false,"description":"Incluir registros archivados.","name":"includeArchived","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":500,"description":"Tamaño máximo de página. Predeterminado: 100; máximo: 500.","example":100},"required":false,"description":"Tamaño máximo de página. Predeterminado: 100; máximo: 500.","name":"limit","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":100000,"description":"Registros que se omiten. Predeterminado: 0. Para avanzar use offset + items.length.","example":0},"required":false,"description":"Registros que se omiten. Predeterminado: 0. Para avanzar use offset + items.length.","name":"offset","in":"query"}],"responses":{"200":{"description":"Página de registros activos (o archivados si se solicita).","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoiceResolutionList"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"post":{"operationId":"invoiceResolutions.create","tags":["Resoluciones"],"summary":"Crear una resolución de facturación","description":"Requiere el rol Admin en el espacio de la ruta. Acepta Idempotency-Key. No admite PAT; use una sesión interactiva. Límite del cuerpo HTTP: 1000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"admin","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":null,"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolutionInput"}}}},"responses":{"201":{"description":"Registro creado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Resolution"}}}},"400":{"description":"Rechazo: invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, invalid_request, server_owned_field, invalid_query, invalid_path, invalid_resolution_range, sandbox_requires_habilitacion.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_json":{"summary":"El cuerpo no es JSON válido.","value":{"error":{"code":"invalid_json","message":"El cuerpo no es JSON válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_key":{"summary":"El cuerpo repite una clave JSON.","value":{"error":{"code":"duplicate_key","message":"El cuerpo repite una clave JSON."},"requestId":"11111111-1111-4111-8111-111111111111"}},"json_syntax":{"summary":"El JSON tiene un error de sintaxis.","value":{"error":{"code":"json_syntax","message":"El JSON tiene un error de sintaxis."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required, workspace_admin_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, duplicate_resource, resolution_number_regression.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_resource":{"summary":"Ya existe un recurso con la misma identificación.","value":{"error":{"code":"duplicate_resource","message":"Ya existe un recurso con la misma identificación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/invoice-resolutions/{resolutionId}":{"get":{"operationId":"invoiceResolutions.get","tags":["Resoluciones"],"summary":"Consultar una resolución de facturación","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"resolutionId","in":"path"}],"responses":{"200":{"description":"Registro.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Resolution"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"patch":{"operationId":"invoiceResolutions.update","tags":["Resoluciones"],"summary":"Actualizar una resolución de facturación","description":"Requiere el rol Admin en el espacio de la ruta. Acepta Idempotency-Key. No admite PAT; use una sesión interactiva. Límite del cuerpo HTTP: 1000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"admin","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":null,"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"resolutionId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolutionPatch"}}}},"responses":{"200":{"description":"Registro actualizado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Resolution"}}}},"400":{"description":"Rechazo: invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, invalid_request, server_owned_field, invalid_query, invalid_path, invalid_resolution_range, sandbox_requires_habilitacion.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_json":{"summary":"El cuerpo no es JSON válido.","value":{"error":{"code":"invalid_json","message":"El cuerpo no es JSON válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_key":{"summary":"El cuerpo repite una clave JSON.","value":{"error":{"code":"duplicate_key","message":"El cuerpo repite una clave JSON."},"requestId":"11111111-1111-4111-8111-111111111111"}},"json_syntax":{"summary":"El JSON tiene un error de sintaxis.","value":{"error":{"code":"json_syntax","message":"El JSON tiene un error de sintaxis."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required, workspace_admin_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, resource_archived, duplicate_resource, resolution_number_regression.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"resource_archived":{"summary":"El recurso está archivado.","value":{"error":{"code":"resource_archived","message":"El recurso está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"delete":{"operationId":"invoiceResolutions.archive","tags":["Resoluciones"],"summary":"Archivar una resolución de facturación","description":"Borrado lógico. El registro se conserva para auditoría y se puede reactivar. Requiere el rol Admin en el espacio de la ruta. Acepta Idempotency-Key. No admite PAT; use una sesión interactiva.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"admin","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":null,"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"resolutionId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Registro archivado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Resolution"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required, workspace_admin_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/invoice-resolutions/{resolutionId}/restore":{"post":{"operationId":"invoiceResolutions.restore","tags":["Resoluciones"],"summary":"Reactivar una resolución de facturación","description":"Requiere el rol Admin en el espacio de la ruta. Acepta Idempotency-Key. No admite PAT; use una sesión interactiva.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"admin","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":null,"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"resolutionId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Registro reactivado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Resolution"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required, workspace_admin_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, duplicate_resource.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_resource":{"summary":"Ya existe un recurso con la misma identificación.","value":{"error":{"code":"duplicate_resource","message":"Ya existe un recurso con la misma identificación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/credit-note-resolutions":{"get":{"operationId":"creditNoteResolutions.list","tags":["Resoluciones"],"summary":"Listar resoluciones de notas crédito","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","maxLength":128},"required":false,"name":"q","in":"query"},{"schema":{"type":"string","enum":["true","false"],"description":"Incluir registros archivados."},"required":false,"description":"Incluir registros archivados.","name":"includeArchived","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":500,"description":"Tamaño máximo de página. Predeterminado: 100; máximo: 500.","example":100},"required":false,"description":"Tamaño máximo de página. Predeterminado: 100; máximo: 500.","name":"limit","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":100000,"description":"Registros que se omiten. Predeterminado: 0. Para avanzar use offset + items.length.","example":0},"required":false,"description":"Registros que se omiten. Predeterminado: 0. Para avanzar use offset + items.length.","name":"offset","in":"query"}],"responses":{"200":{"description":"Página de registros activos (o archivados si se solicita).","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditNoteResolutionList"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"post":{"operationId":"creditNoteResolutions.create","tags":["Resoluciones"],"summary":"Crear una resolución de notas crédito","description":"Requiere el rol Admin en el espacio de la ruta. Acepta Idempotency-Key. No admite PAT; use una sesión interactiva. Límite del cuerpo HTTP: 1000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"admin","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":null,"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolutionInput"}}}},"responses":{"201":{"description":"Registro creado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Resolution"}}}},"400":{"description":"Rechazo: invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, invalid_request, server_owned_field, invalid_query, invalid_path, invalid_resolution_range, sandbox_requires_habilitacion.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_json":{"summary":"El cuerpo no es JSON válido.","value":{"error":{"code":"invalid_json","message":"El cuerpo no es JSON válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_key":{"summary":"El cuerpo repite una clave JSON.","value":{"error":{"code":"duplicate_key","message":"El cuerpo repite una clave JSON."},"requestId":"11111111-1111-4111-8111-111111111111"}},"json_syntax":{"summary":"El JSON tiene un error de sintaxis.","value":{"error":{"code":"json_syntax","message":"El JSON tiene un error de sintaxis."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required, workspace_admin_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, duplicate_resource, resolution_number_regression.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_resource":{"summary":"Ya existe un recurso con la misma identificación.","value":{"error":{"code":"duplicate_resource","message":"Ya existe un recurso con la misma identificación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/patients/templates/{format}":{"get":{"operationId":"patients.downloadTemplate","tags":["Pacientes"],"summary":"Descargar la plantilla de pacientes","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","enum":["csv","xlsx"]},"required":true,"name":"format","in":"path"}],"responses":{"200":{"description":"Plantilla.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/patients/xlsx-conversions":{"post":{"operationId":"patients.convertXlsx","tags":["Pacientes"],"summary":"Convertir un XLSX de pacientes a CSV","description":"Convierte el archivo para revisión en el portal. No guarda pacientes; la importación usa la operación de creación. Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista. Límite del cuerpo HTTP: 5000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/XlsxUpload"}}}},"responses":{"200":{"description":"CSV convertido.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"text/csv":{"schema":{"type":"string"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_xlsx_file, invalid_request, invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, server_owned_field.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_xlsx_file":{"summary":"El archivo XLSX no es válido.","value":{"error":{"code":"invalid_xlsx_file","message":"El archivo XLSX no es válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/rips-packages/context":{"get":{"operationId":"ripsPackages.getContext","tags":["Paquetes RIPS"],"summary":"Contexto verificado para preparar RIPS","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"}],"responses":{"200":{"description":"Contexto del espacio.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RipsContext"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/health-invoices/context":{"get":{"operationId":"healthInvoices.getContext","tags":["Facturas de salud"],"summary":"Contexto para emitir una factura","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"}],"responses":{"200":{"description":"Pagadores, sedes, resoluciones y estado del proveedor sin secretos.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthInvoiceContext"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/credit-note-resolutions/{resolutionId}":{"get":{"operationId":"creditNoteResolutions.get","tags":["Resoluciones"],"summary":"Consultar una resolución de notas crédito","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"resolutionId","in":"path"}],"responses":{"200":{"description":"Registro.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Resolution"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"patch":{"operationId":"creditNoteResolutions.update","tags":["Resoluciones"],"summary":"Actualizar una resolución de notas crédito","description":"Requiere el rol Admin en el espacio de la ruta. Acepta Idempotency-Key. No admite PAT; use una sesión interactiva. Límite del cuerpo HTTP: 1000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"admin","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":null,"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"resolutionId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolutionPatch"}}}},"responses":{"200":{"description":"Registro actualizado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Resolution"}}}},"400":{"description":"Rechazo: invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, invalid_request, server_owned_field, invalid_query, invalid_path, invalid_resolution_range, sandbox_requires_habilitacion.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_json":{"summary":"El cuerpo no es JSON válido.","value":{"error":{"code":"invalid_json","message":"El cuerpo no es JSON válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_key":{"summary":"El cuerpo repite una clave JSON.","value":{"error":{"code":"duplicate_key","message":"El cuerpo repite una clave JSON."},"requestId":"11111111-1111-4111-8111-111111111111"}},"json_syntax":{"summary":"El JSON tiene un error de sintaxis.","value":{"error":{"code":"json_syntax","message":"El JSON tiene un error de sintaxis."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required, workspace_admin_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, resource_archived, duplicate_resource, resolution_number_regression.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"resource_archived":{"summary":"El recurso está archivado.","value":{"error":{"code":"resource_archived","message":"El recurso está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"delete":{"operationId":"creditNoteResolutions.archive","tags":["Resoluciones"],"summary":"Archivar una resolución de notas crédito","description":"Borrado lógico. El registro se conserva para auditoría y se puede reactivar. Requiere el rol Admin en el espacio de la ruta. Acepta Idempotency-Key. No admite PAT; use una sesión interactiva.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"admin","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":null,"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"resolutionId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Registro archivado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Resolution"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required, workspace_admin_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/credit-note-resolutions/{resolutionId}/restore":{"post":{"operationId":"creditNoteResolutions.restore","tags":["Resoluciones"],"summary":"Reactivar una resolución de notas crédito","description":"Requiere el rol Admin en el espacio de la ruta. Acepta Idempotency-Key. No admite PAT; use una sesión interactiva.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"admin","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":null,"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"resolutionId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Registro reactivado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Resolution"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required, workspace_admin_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, duplicate_resource.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_resource":{"summary":"Ya existe un recurso con la misma identificación.","value":{"error":{"code":"duplicate_resource","message":"Ya existe un recurso con la misma identificación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/debit-note-resolutions":{"get":{"operationId":"debitNoteResolutions.list","tags":["Resoluciones"],"summary":"Listar resoluciones de notas débito","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","maxLength":128},"required":false,"name":"q","in":"query"},{"schema":{"type":"string","enum":["true","false"],"description":"Incluir registros archivados."},"required":false,"description":"Incluir registros archivados.","name":"includeArchived","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":500,"description":"Tamaño máximo de página. Predeterminado: 100; máximo: 500.","example":100},"required":false,"description":"Tamaño máximo de página. Predeterminado: 100; máximo: 500.","name":"limit","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":100000,"description":"Registros que se omiten. Predeterminado: 0. Para avanzar use offset + items.length.","example":0},"required":false,"description":"Registros que se omiten. Predeterminado: 0. Para avanzar use offset + items.length.","name":"offset","in":"query"}],"responses":{"200":{"description":"Página de registros activos (o archivados si se solicita).","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebitNoteResolutionList"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"post":{"operationId":"debitNoteResolutions.create","tags":["Resoluciones"],"summary":"Crear una resolución de notas débito","description":"Requiere el rol Admin en el espacio de la ruta. Acepta Idempotency-Key. No admite PAT; use una sesión interactiva. Límite del cuerpo HTTP: 1000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"admin","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":null,"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolutionInput"}}}},"responses":{"201":{"description":"Registro creado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Resolution"}}}},"400":{"description":"Rechazo: invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, invalid_request, server_owned_field, invalid_query, invalid_path, invalid_resolution_range, sandbox_requires_habilitacion.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_json":{"summary":"El cuerpo no es JSON válido.","value":{"error":{"code":"invalid_json","message":"El cuerpo no es JSON válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_key":{"summary":"El cuerpo repite una clave JSON.","value":{"error":{"code":"duplicate_key","message":"El cuerpo repite una clave JSON."},"requestId":"11111111-1111-4111-8111-111111111111"}},"json_syntax":{"summary":"El JSON tiene un error de sintaxis.","value":{"error":{"code":"json_syntax","message":"El JSON tiene un error de sintaxis."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required, workspace_admin_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, duplicate_resource, resolution_number_regression.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_resource":{"summary":"Ya existe un recurso con la misma identificación.","value":{"error":{"code":"duplicate_resource","message":"Ya existe un recurso con la misma identificación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/debit-note-resolutions/{resolutionId}":{"get":{"operationId":"debitNoteResolutions.get","tags":["Resoluciones"],"summary":"Consultar una resolución de notas débito","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"resolutionId","in":"path"}],"responses":{"200":{"description":"Registro.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Resolution"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"patch":{"operationId":"debitNoteResolutions.update","tags":["Resoluciones"],"summary":"Actualizar una resolución de notas débito","description":"Requiere el rol Admin en el espacio de la ruta. Acepta Idempotency-Key. No admite PAT; use una sesión interactiva. Límite del cuerpo HTTP: 1000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"admin","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":null,"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"resolutionId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolutionPatch"}}}},"responses":{"200":{"description":"Registro actualizado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Resolution"}}}},"400":{"description":"Rechazo: invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, invalid_request, server_owned_field, invalid_query, invalid_path, invalid_resolution_range, sandbox_requires_habilitacion.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_json":{"summary":"El cuerpo no es JSON válido.","value":{"error":{"code":"invalid_json","message":"El cuerpo no es JSON válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_key":{"summary":"El cuerpo repite una clave JSON.","value":{"error":{"code":"duplicate_key","message":"El cuerpo repite una clave JSON."},"requestId":"11111111-1111-4111-8111-111111111111"}},"json_syntax":{"summary":"El JSON tiene un error de sintaxis.","value":{"error":{"code":"json_syntax","message":"El JSON tiene un error de sintaxis."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required, workspace_admin_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, resource_archived, duplicate_resource, resolution_number_regression.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"resource_archived":{"summary":"El recurso está archivado.","value":{"error":{"code":"resource_archived","message":"El recurso está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"delete":{"operationId":"debitNoteResolutions.archive","tags":["Resoluciones"],"summary":"Archivar una resolución de notas débito","description":"Borrado lógico. El registro se conserva para auditoría y se puede reactivar. Requiere el rol Admin en el espacio de la ruta. Acepta Idempotency-Key. No admite PAT; use una sesión interactiva.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"admin","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":null,"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"resolutionId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Registro archivado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Resolution"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required, workspace_admin_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/debit-note-resolutions/{resolutionId}/restore":{"post":{"operationId":"debitNoteResolutions.restore","tags":["Resoluciones"],"summary":"Reactivar una resolución de notas débito","description":"Requiere el rol Admin en el espacio de la ruta. Acepta Idempotency-Key. No admite PAT; use una sesión interactiva.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"admin","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":null,"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"resolutionId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Registro reactivado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Resolution"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required, workspace_admin_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, duplicate_resource.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_resource":{"summary":"Ya existe un recurso con la misma identificación.","value":{"error":{"code":"duplicate_resource","message":"Ya existe un recurso con la misma identificación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/rips-packages":{"get":{"operationId":"ripsPackages.list","tags":["Paquetes RIPS"],"summary":"Listar paquetes RIPS","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"$ref":"#/components/schemas/RipsPackageKind"},"required":false,"description":"Uno de los once tipos de paquete FEV RIPS fijados en el contrato nativo.","name":"kind","in":"query"},{"schema":{"$ref":"#/components/schemas/RipsPackageStatus"},"required":false,"description":"Draft: editable. Dispatching: intento registrado, en curso. Accepted: recibo verificado. Rejected: rechazo terminal; se corrige con una revisión nueva. Unknown: resultado incierto; solo se resuelve conciliando con evidencia.","name":"status","in":"query"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":false,"description":"Identificador opaco.","name":"sourceInvoiceId","in":"query"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":false,"description":"Identificador opaco.","name":"sourceCreditNoteId","in":"query"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":false,"description":"Identificador opaco.","name":"sourceDebitNoteId","in":"query"},{"schema":{"type":"string","maxLength":128},"required":false,"name":"q","in":"query"},{"schema":{"type":"string","enum":["true","false"],"description":"Incluir registros archivados."},"required":false,"description":"Incluir registros archivados.","name":"includeArchived","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":500,"description":"Tamaño máximo de página. Predeterminado: 100; máximo: 500.","example":100},"required":false,"description":"Tamaño máximo de página. Predeterminado: 100; máximo: 500.","name":"limit","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":100000,"description":"Registros que se omiten. Predeterminado: 0. Para avanzar use offset + items.length.","example":0},"required":false,"description":"Registros que se omiten. Predeterminado: 0. Para avanzar use offset + items.length.","name":"offset","in":"query"}],"responses":{"200":{"description":"Paquetes del espacio sin cuerpos grandes.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RipsPackageList"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"post":{"operationId":"ripsPackages.create","tags":["Paquetes RIPS"],"summary":"Guardar un borrador RIPS","description":"Guarda la revisión 1 con su original exacto y procedencia. No llama al Ministerio ni autoriza el envío. Un objeto tiene campos tipados opcionales; para importar JSON que necesita corrección use rips como texto exacto.\n\nGuardar permite un borrador incompleto. Esta tabla indica lo exigido **para validar y enviar**; `attachedDocument` siempre es una referencia a PahFacturar, nunca XML enviado por el cliente.\n| kind | rips | attachedDocument | Referencia aceptada y números |\n| --- | --- | --- | --- |\n| rips_sin_factura | objeto | null | Sin referencia; numFactura=null, tipoNota=RS, numNota propio obligatorio. |\n| fev_rips | objeto | invoice | numFactura igual al documento; tipoNota y numNota vacíos/null. No usar para cápita. |\n| nc_parcial | objeto | credit-note | Factura RIPS aceptada; numFactura=factura original, numNota=nota y tipoNota=NC. Control de saldo. |\n| nc_total | null | credit-note | Factura RIPS aceptada; anulación total con control de saldo/total. Números derivados del XML. |\n| nd | objeto | debit-note | Factura RIPS aceptada; numFactura=factura original, numNota=nota, tipoNota=ND. La nota se emite por POST /debit-notes con RIPS adicionales explícitos. |\n| nota_ajuste | objeto | null | Factura RIPS aceptada; numFactura=factura original, numNota propio, tipoNota=NA. |\n| capita_inicial | null | invoice | Sin referencia anterior; XML con modalidad 03 y contrato o póliza. Números derivados del XML. |\n| capita_periodo | objeto | invoice | Cápita inicial/período aceptado; numFactura=factura anterior, XML=factura nueva (distinta), tipoNota/numNota vacíos; valores de servicios en cero. |\n| capita_final | objeto | null | Cápita inicial/período aceptado; numFactura=factura anterior, tipoNota/numNota vacíos; valores de servicios en cero. |\n| nc_acuerdo_voluntades | null | credit-note | Factura RIPS aceptada; números y referencia derivados del XML. |\n| nc_capita | null | credit-note | Factura RIPS aceptada; números y referencia derivados del XML. No se infiere un control de saldo adicional por el nombre. |\nPara referencias, el servidor busca el recibo aceptado en el mismo espacio, destino y ambiente, por número/NIT y CUFE cuando corresponde. `sourcePackageId` es opcional; si se envía, debe identificar un paquete activo aceptado y coincidir con numFactura. No sustituye estas comprobaciones. Requiere una membresía activa en el espacio de la ruta. Acepta Idempotency-Key. PAT: requiere el permiso write y acceso al espacio de la ruta, cuando exista. Límite del cuerpo HTTP: 26000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":"write","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRipsPackageInput"},"examples":{"rips_sin_factura":{"summary":"rips_sin_factura","description":"Ejemplo sintético con estructura completa. Sustituya identificaciones, códigos, números y referencias por datos válidos del espacio. Los documentos deben estar aceptados en PahFacturar; las referencias deben tener un recibo RIPS aceptado. No prueba aceptación del Ministerio.","value":{"kind":"rips_sin_factura","origin":"upload","ripsSourceProfile":"native-d558206","rips":{"numDocumentoIdObligado":"900123456","numFactura":null,"tipoNota":"RS","numNota":"RS-DEMO-001","usuarios":[{"tipoDocumentoIdentificacion":"CC","numDocumentoIdentificacion":"1000000002","tipoUsuario":"01","fechaNacimiento":"1990-01-01","codSexo":"F","codPaisResidencia":"170","codPaisOrigen":"170","codMunicipioResidencia":"11001","codZonaTerritorialResidencia":"01","incapacidad":"NO","consecutivo":1,"servicios":{"consultas":[{"codPrestador":"110010000101","fechaInicioAtencion":"2026-09-01 10:00","numAutorizacion":null,"codConsulta":"890201","modalidadGrupoServicioTecSal":"01","grupoServicios":"01","codServicio":325,"finalidadTecnologiaSalud":"44","causaMotivoAtencion":"38","codDiagnosticoPrincipal":"Z000","codDiagnosticoRelacionado1":null,"codDiagnosticoRelacionado2":null,"codDiagnosticoRelacionado3":null,"tipoDiagnosticoPrincipal":"01","tipoDocumentoIdentificacion":"CC","numDocumentoIdentificacion":"1000000001","vrServicio":100000,"conceptoRecaudo":"05","valorPagoModerador":0,"numFEVPagoModerador":null,"consecutivo":1}]}}]},"attachedDocument":null}},"fev_rips":{"summary":"fev_rips","description":"Ejemplo sintético con estructura completa. Sustituya identificaciones, códigos, números y referencias por datos válidos del espacio. Los documentos deben estar aceptados en PahFacturar; las referencias deben tener un recibo RIPS aceptado. No prueba aceptación del Ministerio.","value":{"kind":"fev_rips","origin":"upload","ripsSourceProfile":"native-d558206","rips":{"numDocumentoIdObligado":"900123456","numFactura":"SETP990000001","tipoNota":null,"numNota":null,"usuarios":[{"tipoDocumentoIdentificacion":"CC","numDocumentoIdentificacion":"1000000002","tipoUsuario":"01","fechaNacimiento":"1990-01-01","codSexo":"F","codPaisResidencia":"170","codPaisOrigen":"170","codMunicipioResidencia":"11001","codZonaTerritorialResidencia":"01","incapacidad":"NO","consecutivo":1,"servicios":{"consultas":[{"codPrestador":"110010000101","fechaInicioAtencion":"2026-09-01 10:00","numAutorizacion":null,"codConsulta":"890201","modalidadGrupoServicioTecSal":"01","grupoServicios":"01","codServicio":325,"finalidadTecnologiaSalud":"44","causaMotivoAtencion":"38","codDiagnosticoPrincipal":"Z000","codDiagnosticoRelacionado1":null,"codDiagnosticoRelacionado2":null,"codDiagnosticoRelacionado3":null,"tipoDiagnosticoPrincipal":"01","tipoDocumentoIdentificacion":"CC","numDocumentoIdentificacion":"1000000001","vrServicio":100000,"conceptoRecaudo":"05","valorPagoModerador":0,"numFEVPagoModerador":null,"consecutivo":1}]}}]},"attachedDocument":{"documentKind":"invoice","number":"SETP990000001"}}},"nc_parcial":{"summary":"nc_parcial","description":"Ejemplo sintético con estructura completa. Sustituya identificaciones, códigos, números y referencias por datos válidos del espacio. Los documentos deben estar aceptados en PahFacturar; las referencias deben tener un recibo RIPS aceptado. No prueba aceptación del Ministerio.","value":{"kind":"nc_parcial","origin":"upload","ripsSourceProfile":"native-d558206","rips":{"numDocumentoIdObligado":"900123456","numFactura":"SETP990000001","tipoNota":"NC","numNota":"NC-DEMO-001","usuarios":[{"tipoDocumentoIdentificacion":"CC","numDocumentoIdentificacion":"1000000002","tipoUsuario":"01","fechaNacimiento":"1990-01-01","codSexo":"F","codPaisResidencia":"170","codPaisOrigen":"170","codMunicipioResidencia":"11001","codZonaTerritorialResidencia":"01","incapacidad":"NO","consecutivo":1,"servicios":{"consultas":[{"codPrestador":"110010000101","fechaInicioAtencion":"2026-09-01 10:00","numAutorizacion":null,"codConsulta":"890201","modalidadGrupoServicioTecSal":"01","grupoServicios":"01","codServicio":325,"finalidadTecnologiaSalud":"44","causaMotivoAtencion":"38","codDiagnosticoPrincipal":"Z000","codDiagnosticoRelacionado1":null,"codDiagnosticoRelacionado2":null,"codDiagnosticoRelacionado3":null,"tipoDiagnosticoPrincipal":"01","tipoDocumentoIdentificacion":"CC","numDocumentoIdentificacion":"1000000001","vrServicio":100000,"conceptoRecaudo":"05","valorPagoModerador":0,"numFEVPagoModerador":null,"consecutivo":1}]}}]},"attachedDocument":{"documentKind":"credit-note","number":"NC-DEMO-001"},"sourcePackageId":"pkg-factura-aceptada"}},"nc_total":{"summary":"nc_total","description":"Ejemplo sintético con estructura completa. Sustituya identificaciones, códigos, números y referencias por datos válidos del espacio. Los documentos deben estar aceptados en PahFacturar; las referencias deben tener un recibo RIPS aceptado. No prueba aceptación del Ministerio.","value":{"kind":"nc_total","origin":"upload","ripsSourceProfile":"native-d558206","rips":null,"attachedDocument":{"documentKind":"credit-note","number":"NC-DEMO-002"},"sourcePackageId":"pkg-factura-aceptada"}},"nd":{"summary":"nd","description":"Ejemplo sintético con estructura completa. Sustituya identificaciones, códigos, números y referencias por datos válidos del espacio. Los documentos deben estar aceptados en PahFacturar; las referencias deben tener un recibo RIPS aceptado. No prueba aceptación del Ministerio.","value":{"kind":"nd","origin":"upload","ripsSourceProfile":"native-d558206","rips":{"numDocumentoIdObligado":"900123456","numFactura":"SETP990000001","tipoNota":"ND","numNota":"ND-DEMO-001","usuarios":[{"tipoDocumentoIdentificacion":"CC","numDocumentoIdentificacion":"1000000002","tipoUsuario":"01","fechaNacimiento":"1990-01-01","codSexo":"F","codPaisResidencia":"170","codPaisOrigen":"170","codMunicipioResidencia":"11001","codZonaTerritorialResidencia":"01","incapacidad":"NO","consecutivo":1,"servicios":{"consultas":[{"codPrestador":"110010000101","fechaInicioAtencion":"2026-09-01 10:00","numAutorizacion":null,"codConsulta":"890201","modalidadGrupoServicioTecSal":"01","grupoServicios":"01","codServicio":325,"finalidadTecnologiaSalud":"44","causaMotivoAtencion":"38","codDiagnosticoPrincipal":"Z000","codDiagnosticoRelacionado1":null,"codDiagnosticoRelacionado2":null,"codDiagnosticoRelacionado3":null,"tipoDiagnosticoPrincipal":"01","tipoDocumentoIdentificacion":"CC","numDocumentoIdentificacion":"1000000001","vrServicio":100000,"conceptoRecaudo":"05","valorPagoModerador":0,"numFEVPagoModerador":null,"consecutivo":1}]}}]},"attachedDocument":{"documentKind":"debit-note","number":"ND-DEMO-001"},"sourcePackageId":"pkg-factura-aceptada"}},"nota_ajuste":{"summary":"nota_ajuste","description":"Ejemplo sintético con estructura completa. Sustituya identificaciones, códigos, números y referencias por datos válidos del espacio. Los documentos deben estar aceptados en PahFacturar; las referencias deben tener un recibo RIPS aceptado. No prueba aceptación del Ministerio.","value":{"kind":"nota_ajuste","origin":"upload","ripsSourceProfile":"native-d558206","rips":{"numDocumentoIdObligado":"900123456","numFactura":"SETP990000001","tipoNota":"NA","numNota":"NA-DEMO-001","usuarios":[{"tipoDocumentoIdentificacion":"CC","numDocumentoIdentificacion":"1000000002","tipoUsuario":"01","fechaNacimiento":"1990-01-01","codSexo":"F","codPaisResidencia":"170","codPaisOrigen":"170","codMunicipioResidencia":"11001","codZonaTerritorialResidencia":"01","incapacidad":"NO","consecutivo":1,"servicios":{"consultas":[{"codPrestador":"110010000101","fechaInicioAtencion":"2026-09-01 10:00","numAutorizacion":null,"codConsulta":"890201","modalidadGrupoServicioTecSal":"01","grupoServicios":"01","codServicio":325,"finalidadTecnologiaSalud":"44","causaMotivoAtencion":"38","codDiagnosticoPrincipal":"Z000","codDiagnosticoRelacionado1":null,"codDiagnosticoRelacionado2":null,"codDiagnosticoRelacionado3":null,"tipoDiagnosticoPrincipal":"01","tipoDocumentoIdentificacion":"CC","numDocumentoIdentificacion":"1000000001","vrServicio":100000,"conceptoRecaudo":"05","valorPagoModerador":0,"numFEVPagoModerador":null,"consecutivo":1}]}}]},"attachedDocument":null,"sourcePackageId":"pkg-factura-aceptada"}},"capita_inicial":{"summary":"capita_inicial","description":"Ejemplo sintético con estructura completa. Sustituya identificaciones, códigos, números y referencias por datos válidos del espacio. Los documentos deben estar aceptados en PahFacturar; las referencias deben tener un recibo RIPS aceptado. No prueba aceptación del Ministerio.","value":{"kind":"capita_inicial","origin":"upload","ripsSourceProfile":"native-d558206","rips":null,"attachedDocument":{"documentKind":"invoice","number":"CAP-DEMO-001"}}},"capita_periodo":{"summary":"capita_periodo","description":"Ejemplo sintético con estructura completa. Sustituya identificaciones, códigos, números y referencias por datos válidos del espacio. Los documentos deben estar aceptados en PahFacturar; las referencias deben tener un recibo RIPS aceptado. No prueba aceptación del Ministerio.","value":{"kind":"capita_periodo","origin":"upload","ripsSourceProfile":"native-d558206","rips":{"numDocumentoIdObligado":"900123456","numFactura":"CAP-DEMO-001","tipoNota":null,"numNota":null,"usuarios":[{"tipoDocumentoIdentificacion":"CC","numDocumentoIdentificacion":"1000000002","tipoUsuario":"01","fechaNacimiento":"1990-01-01","codSexo":"F","codPaisResidencia":"170","codPaisOrigen":"170","codMunicipioResidencia":"11001","codZonaTerritorialResidencia":"01","incapacidad":"NO","consecutivo":1,"servicios":{"consultas":[{"codPrestador":"110010000101","fechaInicioAtencion":"2026-09-01 10:00","numAutorizacion":null,"codConsulta":"890201","modalidadGrupoServicioTecSal":"01","grupoServicios":"01","codServicio":325,"finalidadTecnologiaSalud":"44","causaMotivoAtencion":"38","codDiagnosticoPrincipal":"Z000","codDiagnosticoRelacionado1":null,"codDiagnosticoRelacionado2":null,"codDiagnosticoRelacionado3":null,"tipoDiagnosticoPrincipal":"01","tipoDocumentoIdentificacion":"CC","numDocumentoIdentificacion":"1000000001","vrServicio":0,"conceptoRecaudo":"05","valorPagoModerador":0,"numFEVPagoModerador":null,"consecutivo":1}]}}]},"attachedDocument":{"documentKind":"invoice","number":"CAP-DEMO-002"},"sourcePackageId":"pkg-capita-aceptada"}},"capita_final":{"summary":"capita_final","description":"Ejemplo sintético con estructura completa. Sustituya identificaciones, códigos, números y referencias por datos válidos del espacio. Los documentos deben estar aceptados en PahFacturar; las referencias deben tener un recibo RIPS aceptado. No prueba aceptación del Ministerio.","value":{"kind":"capita_final","origin":"upload","ripsSourceProfile":"native-d558206","rips":{"numDocumentoIdObligado":"900123456","numFactura":"CAP-DEMO-001","tipoNota":null,"numNota":null,"usuarios":[{"tipoDocumentoIdentificacion":"CC","numDocumentoIdentificacion":"1000000002","tipoUsuario":"01","fechaNacimiento":"1990-01-01","codSexo":"F","codPaisResidencia":"170","codPaisOrigen":"170","codMunicipioResidencia":"11001","codZonaTerritorialResidencia":"01","incapacidad":"NO","consecutivo":1,"servicios":{"consultas":[{"codPrestador":"110010000101","fechaInicioAtencion":"2026-09-01 10:00","numAutorizacion":null,"codConsulta":"890201","modalidadGrupoServicioTecSal":"01","grupoServicios":"01","codServicio":325,"finalidadTecnologiaSalud":"44","causaMotivoAtencion":"38","codDiagnosticoPrincipal":"Z000","codDiagnosticoRelacionado1":null,"codDiagnosticoRelacionado2":null,"codDiagnosticoRelacionado3":null,"tipoDiagnosticoPrincipal":"01","tipoDocumentoIdentificacion":"CC","numDocumentoIdentificacion":"1000000001","vrServicio":0,"conceptoRecaudo":"05","valorPagoModerador":0,"numFEVPagoModerador":null,"consecutivo":1}]}}]},"attachedDocument":null,"sourcePackageId":"pkg-capita-aceptada"}},"nc_acuerdo_voluntades":{"summary":"nc_acuerdo_voluntades","description":"Ejemplo sintético con estructura completa. Sustituya identificaciones, códigos, números y referencias por datos válidos del espacio. Los documentos deben estar aceptados en PahFacturar; las referencias deben tener un recibo RIPS aceptado. No prueba aceptación del Ministerio.","value":{"kind":"nc_acuerdo_voluntades","origin":"upload","ripsSourceProfile":"native-d558206","rips":null,"attachedDocument":{"documentKind":"credit-note","number":"NC-DEMO-003"},"sourcePackageId":"pkg-factura-aceptada"}},"nc_capita":{"summary":"nc_capita","description":"Ejemplo sintético con estructura completa. Sustituya identificaciones, códigos, números y referencias por datos válidos del espacio. Los documentos deben estar aceptados en PahFacturar; las referencias deben tener un recibo RIPS aceptado. No prueba aceptación del Ministerio.","value":{"kind":"nc_capita","origin":"upload","ripsSourceProfile":"native-d558206","rips":null,"attachedDocument":{"documentKind":"credit-note","number":"NC-DEMO-004"},"sourcePackageId":"pkg-capita-aceptada"}}}}}},"responses":{"201":{"description":"Borrador creado; no se ha enviado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"ETag":{"$ref":"#/components/headers/ResourceRevision"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RipsPackage"},"example":{"id":"pkg-demo-001","kind":"rips_sin_factura","status":"Draft","revision":1,"isActive":true,"statusMessage":null,"numFactura":null,"numNota":"RS-DEMO-001","tipoNota":"RS","cufeOrCude":null,"attachedDocument":null,"sourceInvoiceId":null,"sourceCreditNoteId":null,"sourceDebitNoteId":null,"sourcePackageId":null,"procesoId":null,"cuv":null,"validation":null,"lastAttempt":null,"createdByUserId":"user-demo-001","createdAt":"2026-09-01T15:00:00.000Z","updatedAt":"2026-09-01T15:00:00.000Z","ripsPayloadJson":"{\"numDocumentoIdObligado\":\"900123456\",\"numFactura\":null,\"tipoNota\":\"RS\",\"numNota\":\"RS-DEMO-001\",\"usuarios\":[{\"tipoDocumentoIdentificacion\":\"CC\",\"numDocumentoIdentificacion\":\"1000000002\",\"tipoUsuario\":\"01\",\"fechaNacimiento\":\"1990-01-01\",\"codSexo\":\"F\",\"codPaisResidencia\":\"170\",\"codPaisOrigen\":\"170\",\"codMunicipioResidencia\":\"11001\",\"codZonaTerritorialResidencia\":\"01\",\"incapacidad\":\"NO\",\"consecutivo\":1,\"servicios\":{\"consultas\":[{\"codPrestador\":\"110010000101\",\"fechaInicioAtencion\":\"2026-09-01 10:00\",\"numAutorizacion\":null,\"codConsulta\":\"890201\",\"modalidadGrupoServicioTecSal\":\"01\",\"grupoServicios\":\"01\",\"codServicio\":325,\"finalidadTecnologiaSalud\":\"44\",\"causaMotivoAtencion\":\"38\",\"codDiagnosticoPrincipal\":\"Z000\",\"codDiagnosticoRelacionado1\":null,\"codDiagnosticoRelacionado2\":null,\"codDiagnosticoRelacionado3\":null,\"tipoDiagnosticoPrincipal\":\"01\",\"tipoDocumentoIdentificacion\":\"CC\",\"numDocumentoIdentificacion\":\"1000000001\",\"vrServicio\":100000,\"conceptoRecaudo\":\"05\",\"valorPagoModerador\":0,\"numFEVPagoModerador\":null,\"consecutivo\":1}]}}]}","workingPayloadJson":"{\"numDocumentoIdObligado\":\"900123456\",\"numFactura\":null,\"tipoNota\":\"RS\",\"numNota\":\"RS-DEMO-001\",\"usuarios\":[{\"tipoDocumentoIdentificacion\":\"CC\",\"numDocumentoIdentificacion\":\"1000000002\",\"tipoUsuario\":\"01\",\"fechaNacimiento\":\"1990-01-01\",\"codSexo\":\"F\",\"codPaisResidencia\":\"170\",\"codPaisOrigen\":\"170\",\"codMunicipioResidencia\":\"11001\",\"codZonaTerritorialResidencia\":\"01\",\"incapacidad\":\"NO\",\"consecutivo\":1,\"servicios\":{\"consultas\":[{\"codPrestador\":\"110010000101\",\"fechaInicioAtencion\":\"2026-09-01 10:00\",\"numAutorizacion\":null,\"codConsulta\":\"890201\",\"modalidadGrupoServicioTecSal\":\"01\",\"grupoServicios\":\"01\",\"codServicio\":325,\"finalidadTecnologiaSalud\":\"44\",\"causaMotivoAtencion\":\"38\",\"codDiagnosticoPrincipal\":\"Z000\",\"codDiagnosticoRelacionado1\":null,\"codDiagnosticoRelacionado2\":null,\"codDiagnosticoRelacionado3\":null,\"tipoDiagnosticoPrincipal\":\"01\",\"tipoDocumentoIdentificacion\":\"CC\",\"numDocumentoIdentificacion\":\"1000000001\",\"vrServicio\":100000,\"conceptoRecaudo\":\"05\",\"valorPagoModerador\":0,\"numFEVPagoModerador\":null,\"consecutivo\":1}]}}]}","provenance":{"sourceProfile":"native-d558206","declaration":"user-declared","inputFormat":"json","changeCount":0,"inputCount":1}}}}},"400":{"description":"Rechazo: invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, invalid_request, server_owned_field, invalid_query, invalid_path, invalid_rips_input, invalid_package_kind, invalid_input_provenance, invalid_medication_code.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_json":{"summary":"El cuerpo no es JSON válido.","value":{"error":{"code":"invalid_json","message":"El cuerpo no es JSON válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_key":{"summary":"El cuerpo repite una clave JSON.","value":{"error":{"code":"duplicate_key","message":"El cuerpo repite una clave JSON."},"requestId":"11111111-1111-4111-8111-111111111111"}},"json_syntax":{"summary":"El JSON tiene un error de sintaxis.","value":{"error":{"code":"json_syntax","message":"El JSON tiene un error de sintaxis."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, invoice_provider_not_configured, invoice_provider_company_mismatch, artifact_context_unverified.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invoice_provider_not_configured":{"summary":"Configure el token, el equipo y la empresa de PahFacturar.","value":{"error":{"code":"invoice_provider_not_configured","message":"Configure el token, el equipo y la empresa de PahFacturar."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"422":{"description":"Rechazo: source_package_not_accepted, source_invoice_mismatch, attached_document_kind_mismatch, attached_document_not_found, attached_document_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"source_package_not_accepted":{"summary":"El paquete de origen debe estar aceptado con un recibo verificado.","value":{"error":{"code":"source_package_not_accepted","message":"El paquete de origen debe estar aceptado con un recibo verificado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"source_invoice_mismatch":{"summary":"El número de factura no coincide con el paquete de origen.","value":{"error":{"code":"source_invoice_mismatch","message":"El número de factura no coincide con el paquete de origen."},"requestId":"11111111-1111-4111-8111-111111111111"}},"attached_document_kind_mismatch":{"summary":"El documento del sistema de facturación no corresponde al tipo de paquete.","value":{"error":{"code":"attached_document_kind_mismatch","message":"El documento del sistema de facturación no corresponde al tipo de paquete."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"502":{"description":"Rechazo: invoice_provider_unavailable, artifact_download_failed.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invoice_provider_unavailable":{"summary":"PahFacturar no respondió. Intente de nuevo.","value":{"error":{"code":"invoice_provider_unavailable","message":"PahFacturar no respondió. Intente de nuevo."},"requestId":"11111111-1111-4111-8111-111111111111"}},"artifact_download_failed":{"summary":"No fue posible descargar el artefacto del proveedor.","value":{"error":{"code":"artifact_download_failed","message":"No fue posible descargar el artefacto del proveedor."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/catalogs/medications/metadata":{"get":{"operationId":"catalog.getMedicationMetadata","tags":["Catálogo de medicamentos"],"summary":"Versión fijada del catálogo","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"}],"responses":{"200":{"description":"Versión y hashes del catálogo.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MedicationCatalogMetadata"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/catalogs/medications/{catalog}":{"get":{"operationId":"catalog.searchMedications","tags":["Catálogo de medicamentos"],"summary":"Buscar medicamentos","description":"Devuelve códigos habilitados, ordenados por código. Copie next en after sin modificarlo y conserve q y catalog en todas las páginas; next=null termina la consulta. El nombre es opcional. Solo CUM e IUM están disponibles: otros catálogos clínicos no tienen endpoint en esta versión. Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","enum":["CUM","IUM"]},"required":true,"name":"catalog","in":"path"},{"schema":{"type":"string","maxLength":128,"description":"Fragmento del código o nombre revisado, sin distinguir mayúsculas."},"required":false,"description":"Fragmento del código o nombre revisado, sin distinguir mayúsculas.","name":"q","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Tamaño de página. Predeterminado: 50.","example":50},"required":false,"description":"Tamaño de página. Predeterminado: 50.","name":"limit","in":"query"},{"schema":{"type":"string","maxLength":40,"description":"Valor exacto de next de la página anterior; omitir en la primera página."},"required":false,"description":"Valor exacto de next de la página anterior; omitir en la primera página.","name":"after","in":"query"}],"responses":{"200":{"description":"Página del catálogo fijado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MedicationSearchResult"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_catalog, invalid_catalog_cursor, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_catalog":{"summary":"Use el catálogo CUM o IUM.","value":{"error":{"code":"invalid_catalog","message":"Use el catálogo CUM o IUM."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/catalogs/medications/{catalog}/{code}":{"get":{"operationId":"catalog.getMedication","tags":["Catálogo de medicamentos"],"summary":"Consultar un medicamento","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","enum":["CUM","IUM"]},"required":true,"name":"catalog","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":40},"required":true,"name":"code","in":"path"}],"responses":{"200":{"description":"Código habilitado y presentación disponible.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MedicationDetail"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_catalog, invalid_medication_code, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_catalog":{"summary":"Use el catálogo CUM o IUM.","value":{"error":{"code":"invalid_catalog","message":"Use el catálogo CUM o IUM."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/rips-packages/{packageId}":{"get":{"operationId":"ripsPackages.get","tags":["Paquetes RIPS"],"summary":"Consultar un paquete RIPS","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"packageId","in":"path"}],"responses":{"200":{"description":"Paquete con su revisión vigente.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"ETag":{"$ref":"#/components/headers/ResourceRevision"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RipsPackage"},"example":{"id":"pkg-demo-001","kind":"rips_sin_factura","status":"Draft","revision":1,"isActive":true,"statusMessage":null,"numFactura":null,"numNota":"RS-DEMO-001","tipoNota":"RS","cufeOrCude":null,"attachedDocument":null,"sourceInvoiceId":null,"sourceCreditNoteId":null,"sourceDebitNoteId":null,"sourcePackageId":null,"procesoId":null,"cuv":null,"validation":null,"lastAttempt":null,"createdByUserId":"user-demo-001","createdAt":"2026-09-01T15:00:00.000Z","updatedAt":"2026-09-01T15:00:00.000Z","ripsPayloadJson":"{\"numDocumentoIdObligado\":\"900123456\",\"numFactura\":null,\"tipoNota\":\"RS\",\"numNota\":\"RS-DEMO-001\",\"usuarios\":[{\"tipoDocumentoIdentificacion\":\"CC\",\"numDocumentoIdentificacion\":\"1000000002\",\"tipoUsuario\":\"01\",\"fechaNacimiento\":\"1990-01-01\",\"codSexo\":\"F\",\"codPaisResidencia\":\"170\",\"codPaisOrigen\":\"170\",\"codMunicipioResidencia\":\"11001\",\"codZonaTerritorialResidencia\":\"01\",\"incapacidad\":\"NO\",\"consecutivo\":1,\"servicios\":{\"consultas\":[{\"codPrestador\":\"110010000101\",\"fechaInicioAtencion\":\"2026-09-01 10:00\",\"numAutorizacion\":null,\"codConsulta\":\"890201\",\"modalidadGrupoServicioTecSal\":\"01\",\"grupoServicios\":\"01\",\"codServicio\":325,\"finalidadTecnologiaSalud\":\"44\",\"causaMotivoAtencion\":\"38\",\"codDiagnosticoPrincipal\":\"Z000\",\"codDiagnosticoRelacionado1\":null,\"codDiagnosticoRelacionado2\":null,\"codDiagnosticoRelacionado3\":null,\"tipoDiagnosticoPrincipal\":\"01\",\"tipoDocumentoIdentificacion\":\"CC\",\"numDocumentoIdentificacion\":\"1000000001\",\"vrServicio\":100000,\"conceptoRecaudo\":\"05\",\"valorPagoModerador\":0,\"numFEVPagoModerador\":null,\"consecutivo\":1}]}}]}","workingPayloadJson":"{\"numDocumentoIdObligado\":\"900123456\",\"numFactura\":null,\"tipoNota\":\"RS\",\"numNota\":\"RS-DEMO-001\",\"usuarios\":[{\"tipoDocumentoIdentificacion\":\"CC\",\"numDocumentoIdentificacion\":\"1000000002\",\"tipoUsuario\":\"01\",\"fechaNacimiento\":\"1990-01-01\",\"codSexo\":\"F\",\"codPaisResidencia\":\"170\",\"codPaisOrigen\":\"170\",\"codMunicipioResidencia\":\"11001\",\"codZonaTerritorialResidencia\":\"01\",\"incapacidad\":\"NO\",\"consecutivo\":1,\"servicios\":{\"consultas\":[{\"codPrestador\":\"110010000101\",\"fechaInicioAtencion\":\"2026-09-01 10:00\",\"numAutorizacion\":null,\"codConsulta\":\"890201\",\"modalidadGrupoServicioTecSal\":\"01\",\"grupoServicios\":\"01\",\"codServicio\":325,\"finalidadTecnologiaSalud\":\"44\",\"causaMotivoAtencion\":\"38\",\"codDiagnosticoPrincipal\":\"Z000\",\"codDiagnosticoRelacionado1\":null,\"codDiagnosticoRelacionado2\":null,\"codDiagnosticoRelacionado3\":null,\"tipoDiagnosticoPrincipal\":\"01\",\"tipoDocumentoIdentificacion\":\"CC\",\"numDocumentoIdentificacion\":\"1000000001\",\"vrServicio\":100000,\"conceptoRecaudo\":\"05\",\"valorPagoModerador\":0,\"numFEVPagoModerador\":null,\"consecutivo\":1}]}}]}","provenance":{"sourceProfile":"native-d558206","declaration":"user-declared","inputFormat":"json","changeCount":0,"inputCount":1}}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"patch":{"operationId":"ripsPackages.revise","tags":["Paquetes RIPS"],"summary":"Crear una revisión del paquete","description":"Requiere If-Match con la revisión vigente. Solo en Draft o Rejected. Un rechazo conserva su intento y exige validar la revisión nueva. Requiere una membresía activa en el espacio de la ruta. Acepta Idempotency-Key. Requiere If-Match con la revisión vigente. PAT: requiere el permiso write y acceso al espacio de la ruta, cuando exista. Límite del cuerpo HTTP: 26000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":"write","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"packageId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"},{"schema":{"type":"string","pattern":"^(?:\"\\d+\"|\\d+)$","description":"ETag de GET del paquete, por ejemplo \"3\". Debe corresponder a su revisión vigente; un cambio concurrente produce revision_conflict.","example":"\"3\""},"required":true,"description":"ETag de GET del paquete, por ejemplo \"3\". Debe corresponder a su revisión vigente; un cambio concurrente produce revision_conflict.","name":"if-match","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviseRipsPackageInput"}}}},"responses":{"200":{"description":"Revisión creada. Use el nuevo ETag en la siguiente edición.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"ETag":{"$ref":"#/components/headers/ResourceRevision"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RipsPackage"},"example":{"id":"pkg-demo-001","kind":"rips_sin_factura","status":"Draft","revision":2,"isActive":true,"statusMessage":null,"numFactura":null,"numNota":"RS-DEMO-001","tipoNota":"RS","cufeOrCude":null,"attachedDocument":null,"sourceInvoiceId":null,"sourceCreditNoteId":null,"sourceDebitNoteId":null,"sourcePackageId":null,"procesoId":null,"cuv":null,"validation":null,"lastAttempt":null,"createdByUserId":"user-demo-001","createdAt":"2026-09-01T15:00:00.000Z","updatedAt":"2026-09-01T15:00:00.000Z","ripsPayloadJson":"{\"numDocumentoIdObligado\":\"900123456\",\"numFactura\":null,\"tipoNota\":\"RS\",\"numNota\":\"RS-DEMO-001\",\"usuarios\":[{\"tipoDocumentoIdentificacion\":\"CC\",\"numDocumentoIdentificacion\":\"1000000002\",\"tipoUsuario\":\"01\",\"fechaNacimiento\":\"1990-01-01\",\"codSexo\":\"F\",\"codPaisResidencia\":\"170\",\"codPaisOrigen\":\"170\",\"codMunicipioResidencia\":\"11001\",\"codZonaTerritorialResidencia\":\"01\",\"incapacidad\":\"NO\",\"consecutivo\":1,\"servicios\":{\"consultas\":[{\"codPrestador\":\"110010000101\",\"fechaInicioAtencion\":\"2026-09-01 10:00\",\"numAutorizacion\":null,\"codConsulta\":\"890201\",\"modalidadGrupoServicioTecSal\":\"01\",\"grupoServicios\":\"01\",\"codServicio\":325,\"finalidadTecnologiaSalud\":\"44\",\"causaMotivoAtencion\":\"38\",\"codDiagnosticoPrincipal\":\"Z000\",\"codDiagnosticoRelacionado1\":null,\"codDiagnosticoRelacionado2\":null,\"codDiagnosticoRelacionado3\":null,\"tipoDiagnosticoPrincipal\":\"01\",\"tipoDocumentoIdentificacion\":\"CC\",\"numDocumentoIdentificacion\":\"1000000001\",\"vrServicio\":100000,\"conceptoRecaudo\":\"05\",\"valorPagoModerador\":0,\"numFEVPagoModerador\":null,\"consecutivo\":1}]}}]}","workingPayloadJson":"{\"numDocumentoIdObligado\":\"900123456\",\"numFactura\":null,\"tipoNota\":\"RS\",\"numNota\":\"RS-DEMO-001\",\"usuarios\":[{\"tipoDocumentoIdentificacion\":\"CC\",\"numDocumentoIdentificacion\":\"1000000002\",\"tipoUsuario\":\"01\",\"fechaNacimiento\":\"1990-01-01\",\"codSexo\":\"F\",\"codPaisResidencia\":\"170\",\"codPaisOrigen\":\"170\",\"codMunicipioResidencia\":\"11001\",\"codZonaTerritorialResidencia\":\"01\",\"incapacidad\":\"NO\",\"consecutivo\":1,\"servicios\":{\"consultas\":[{\"codPrestador\":\"110010000101\",\"fechaInicioAtencion\":\"2026-09-01 10:00\",\"numAutorizacion\":null,\"codConsulta\":\"890201\",\"modalidadGrupoServicioTecSal\":\"01\",\"grupoServicios\":\"01\",\"codServicio\":325,\"finalidadTecnologiaSalud\":\"44\",\"causaMotivoAtencion\":\"38\",\"codDiagnosticoPrincipal\":\"Z000\",\"codDiagnosticoRelacionado1\":null,\"codDiagnosticoRelacionado2\":null,\"codDiagnosticoRelacionado3\":null,\"tipoDiagnosticoPrincipal\":\"01\",\"tipoDocumentoIdentificacion\":\"CC\",\"numDocumentoIdentificacion\":\"1000000001\",\"vrServicio\":100000,\"conceptoRecaudo\":\"05\",\"valorPagoModerador\":0,\"numFEVPagoModerador\":null,\"consecutivo\":1}]}}]}","provenance":{"sourceProfile":"native-d558206","declaration":"user-declared","inputFormat":"json","changeCount":0,"inputCount":1}}}}},"400":{"description":"Rechazo: invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, invalid_request, server_owned_field, invalid_query, invalid_path, invalid_rips_input, invalid_input_provenance, invalid_medication_code.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_json":{"summary":"El cuerpo no es JSON válido.","value":{"error":{"code":"invalid_json","message":"El cuerpo no es JSON válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_key":{"summary":"El cuerpo repite una clave JSON.","value":{"error":{"code":"duplicate_key","message":"El cuerpo repite una clave JSON."},"requestId":"11111111-1111-4111-8111-111111111111"}},"json_syntax":{"summary":"El JSON tiene un error de sintaxis.","value":{"error":{"code":"json_syntax","message":"El JSON tiene un error de sintaxis."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, resource_archived, revision_conflict, dispatch_in_progress, submission_outcome_unknown, package_already_accepted, invalid_field_profile, invoice_provider_not_configured, invoice_provider_company_mismatch, artifact_context_unverified.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"resource_archived":{"summary":"El recurso está archivado.","value":{"error":{"code":"resource_archived","message":"El recurso está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"422":{"description":"Rechazo: source_package_not_accepted, source_invoice_mismatch, attached_document_kind_mismatch, attached_document_not_found, attached_document_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"source_package_not_accepted":{"summary":"El paquete de origen debe estar aceptado con un recibo verificado.","value":{"error":{"code":"source_package_not_accepted","message":"El paquete de origen debe estar aceptado con un recibo verificado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"source_invoice_mismatch":{"summary":"El número de factura no coincide con el paquete de origen.","value":{"error":{"code":"source_invoice_mismatch","message":"El número de factura no coincide con el paquete de origen."},"requestId":"11111111-1111-4111-8111-111111111111"}},"attached_document_kind_mismatch":{"summary":"El documento del sistema de facturación no corresponde al tipo de paquete.","value":{"error":{"code":"attached_document_kind_mismatch","message":"El documento del sistema de facturación no corresponde al tipo de paquete."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required, revision_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}},"revision_required":{"summary":"La operación requiere la revisión actual en If-Match.","value":{"error":{"code":"revision_required","message":"La operación requiere la revisión actual en If-Match."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"502":{"description":"Rechazo: invoice_provider_unavailable, artifact_download_failed.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invoice_provider_unavailable":{"summary":"PahFacturar no respondió. Intente de nuevo.","value":{"error":{"code":"invoice_provider_unavailable","message":"PahFacturar no respondió. Intente de nuevo."},"requestId":"11111111-1111-4111-8111-111111111111"}},"artifact_download_failed":{"summary":"No fue posible descargar el artefacto del proveedor.","value":{"error":{"code":"artifact_download_failed","message":"No fue posible descargar el artefacto del proveedor."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"delete":{"operationId":"ripsPackages.archive","tags":["Paquetes RIPS"],"summary":"Archivar un paquete RIPS","description":"Borrado lógico. Conserva intentos y recibos; no reabre un resultado aceptado. Requiere una membresía activa en el espacio de la ruta. Acepta Idempotency-Key. PAT: requiere el permiso write y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":"write","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"packageId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Paquete archivado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"ETag":{"$ref":"#/components/headers/ResourceRevision"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RipsPackage"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/rips-packages/{packageId}/restore":{"post":{"operationId":"ripsPackages.restore","tags":["Paquetes RIPS"],"summary":"Reactivar un paquete RIPS","description":"Requiere una membresía activa en el espacio de la ruta. Acepta Idempotency-Key. PAT: requiere el permiso write y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"write","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":"write","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"packageId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Paquete reactivado con su estado anterior.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"ETag":{"$ref":"#/components/headers/ResourceRevision"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RipsPackage"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/rips-packages/{packageId}/validations":{"post":{"operationId":"ripsPackages.validate","tags":["Paquetes RIPS"],"summary":"Validar una revisión","description":"Evalúa la revisión indicada con las reglas, referencias aceptadas y contexto vigentes, y registra la evidencia. Lee el AttachedDocument vigente del sistema de facturación y registra su digest. Un resultado inválido no altera el paquete. No llama al Ministerio. Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso write y acceso al espacio de la ruta, cuando exista. Límite del cuerpo HTTP: 1000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"write","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"write","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"packageId","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevisionInput"},"examples":{"revision":{"summary":"Validar/enviar la revisión vigente","value":{"revision":1}}}}}},"responses":{"200":{"description":"Evidencia registrada (válida o con hallazgos). El ejemplo muestra un borrador sin usuarios; el HTTP 200 no implica validez.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RipsValidationResult"},"example":{"validation":{"id":"val-demo-001","revision":1,"outcome":"invalid","current":true,"contentDigest":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","attachedDocumentSha256":null,"rulesVersion":"native-d558206","contextDigest":"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb","referencesDigest":"cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc","issues":[{"code":"usuarios_required","field":"usuarios","message":"Se requiere al menos un usuario para enviar el paquete."}],"validatedAt":"2026-09-01T15:01:00.000Z"},"payload":null,"fieldConditions":null}}}},"400":{"description":"Rechazo: invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, invalid_request, server_owned_field, invalid_query, invalid_path.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_json":{"summary":"El cuerpo no es JSON válido.","value":{"error":{"code":"invalid_json","message":"El cuerpo no es JSON válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_key":{"summary":"El cuerpo repite una clave JSON.","value":{"error":{"code":"duplicate_key","message":"El cuerpo repite una clave JSON."},"requestId":"11111111-1111-4111-8111-111111111111"}},"json_syntax":{"summary":"El JSON tiene un error de sintaxis.","value":{"error":{"code":"json_syntax","message":"El JSON tiene un error de sintaxis."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: resource_archived, revision_conflict, invoice_provider_not_configured, invoice_provider_company_mismatch, artifact_context_unverified.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"resource_archived":{"summary":"El recurso está archivado.","value":{"error":{"code":"resource_archived","message":"El recurso está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"revision_conflict":{"summary":"La revisión cambió. Recargue el recurso antes de continuar.","value":{"error":{"code":"revision_conflict","message":"La revisión cambió. Recargue el recurso antes de continuar."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invoice_provider_not_configured":{"summary":"Configure el token, el equipo y la empresa de PahFacturar.","value":{"error":{"code":"invoice_provider_not_configured","message":"Configure el token, el equipo y la empresa de PahFacturar."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"422":{"description":"Rechazo: attached_document_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"attached_document_too_large":{"summary":"El AttachedDocument del sistema de facturación supera 16 MiB; el Ministerio no lo recibe.","value":{"error":{"code":"attached_document_too_large","message":"El AttachedDocument del sistema de facturación supera 16 MiB; el Ministerio no lo recibe."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"502":{"description":"Rechazo: invoice_provider_unavailable, artifact_download_failed.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invoice_provider_unavailable":{"summary":"PahFacturar no respondió. Intente de nuevo.","value":{"error":{"code":"invoice_provider_unavailable","message":"PahFacturar no respondió. Intente de nuevo."},"requestId":"11111111-1111-4111-8111-111111111111"}},"artifact_download_failed":{"summary":"No fue posible descargar el artefacto del proveedor.","value":{"error":{"code":"artifact_download_failed","message":"No fue posible descargar el artefacto del proveedor."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"503":{"description":"Rechazo: upstream_configuration_invalid.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"upstream_configuration_invalid":{"summary":"La conexión con el servicio externo no está configurada para este entorno.","value":{"error":{"code":"upstream_configuration_invalid","message":"La conexión con el servicio externo no está configurada para este entorno."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/rips-packages/{packageId}/dispatches":{"post":{"operationId":"ripsPackages.requestDispatch","tags":["Paquetes RIPS"],"summary":"Solicitar el envío de una revisión al Ministerio","description":"Valida de nuevo la revisión exacta con el AttachedDocument vigente del sistema de facturación, verifica permisos, referencias y saldos, registra el intento inmutable con el cuerpo exacto y luego llama al Ministerio. Un resultado incierto bloquea reenvíos automáticos. Requiere una membresía activa en el espacio de la ruta. Requiere Idempotency-Key. PAT: requiere el permiso send y acceso al espacio de la ruta, cuando exista. Límite del cuerpo HTTP: 1000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"external","x-ripscloud-idempotency":"required","x-ripscloud-pat-scope":"send","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"packageId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":true,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevisionInput"},"examples":{"revision":{"summary":"Validar/enviar la revisión vigente","value":{"revision":1}}}}}},"responses":{"200":{"description":"Intento con resultado terminal (aceptado o rechazado). El CUV de ejemplo es sintético.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RipsDispatchResult"},"example":{"attempt":{"id":"attempt-demo-001","revision":1,"outcome":"accepted","environment":2,"attemptedAt":"2026-09-01T15:02:00.000Z","completedAt":"2026-09-01T15:02:01.000Z","procesoId":"123456","cuv":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","message":"Ejemplo sintético de recibo verificado","requestDigest":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","validations":[],"reconciliation":null},"package":{"id":"pkg-demo-001","kind":"rips_sin_factura","status":"Accepted","revision":1,"isActive":true,"statusMessage":null,"numFactura":null,"numNota":"RS-DEMO-001","tipoNota":"RS","cufeOrCude":null,"attachedDocument":null,"sourceInvoiceId":null,"sourceCreditNoteId":null,"sourceDebitNoteId":null,"sourcePackageId":null,"procesoId":"123456","cuv":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","validation":{"id":"val-demo-001","revision":1,"outcome":"valid","current":true,"contentDigest":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","attachedDocumentSha256":null,"rulesVersion":"native-d558206","contextDigest":"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb","referencesDigest":"cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc","validatedAt":"2026-09-01T15:01:00.000Z"},"lastAttempt":{"id":"attempt-demo-001","revision":1,"outcome":"accepted","environment":2,"attemptedAt":"2026-09-01T15:02:00.000Z","completedAt":"2026-09-01T15:02:01.000Z","procesoId":"123456","cuv":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","message":"Ejemplo sintético de recibo verificado","requestDigest":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","validations":[],"reconciliation":null},"createdByUserId":"user-demo-001","createdAt":"2026-09-01T15:00:00.000Z","updatedAt":"2026-09-01T15:00:00.000Z","ripsPayloadJson":"{\"numDocumentoIdObligado\":\"900123456\",\"numFactura\":null,\"tipoNota\":\"RS\",\"numNota\":\"RS-DEMO-001\",\"usuarios\":[{\"tipoDocumentoIdentificacion\":\"CC\",\"numDocumentoIdentificacion\":\"1000000002\",\"tipoUsuario\":\"01\",\"fechaNacimiento\":\"1990-01-01\",\"codSexo\":\"F\",\"codPaisResidencia\":\"170\",\"codPaisOrigen\":\"170\",\"codMunicipioResidencia\":\"11001\",\"codZonaTerritorialResidencia\":\"01\",\"incapacidad\":\"NO\",\"consecutivo\":1,\"servicios\":{\"consultas\":[{\"codPrestador\":\"110010000101\",\"fechaInicioAtencion\":\"2026-09-01 10:00\",\"numAutorizacion\":null,\"codConsulta\":\"890201\",\"modalidadGrupoServicioTecSal\":\"01\",\"grupoServicios\":\"01\",\"codServicio\":325,\"finalidadTecnologiaSalud\":\"44\",\"causaMotivoAtencion\":\"38\",\"codDiagnosticoPrincipal\":\"Z000\",\"codDiagnosticoRelacionado1\":null,\"codDiagnosticoRelacionado2\":null,\"codDiagnosticoRelacionado3\":null,\"tipoDiagnosticoPrincipal\":\"01\",\"tipoDocumentoIdentificacion\":\"CC\",\"numDocumentoIdentificacion\":\"1000000001\",\"vrServicio\":100000,\"conceptoRecaudo\":\"05\",\"valorPagoModerador\":0,\"numFEVPagoModerador\":null,\"consecutivo\":1}]}}]}","workingPayloadJson":"{\"numDocumentoIdObligado\":\"900123456\",\"numFactura\":null,\"tipoNota\":\"RS\",\"numNota\":\"RS-DEMO-001\",\"usuarios\":[{\"tipoDocumentoIdentificacion\":\"CC\",\"numDocumentoIdentificacion\":\"1000000002\",\"tipoUsuario\":\"01\",\"fechaNacimiento\":\"1990-01-01\",\"codSexo\":\"F\",\"codPaisResidencia\":\"170\",\"codPaisOrigen\":\"170\",\"codMunicipioResidencia\":\"11001\",\"codZonaTerritorialResidencia\":\"01\",\"incapacidad\":\"NO\",\"consecutivo\":1,\"servicios\":{\"consultas\":[{\"codPrestador\":\"110010000101\",\"fechaInicioAtencion\":\"2026-09-01 10:00\",\"numAutorizacion\":null,\"codConsulta\":\"890201\",\"modalidadGrupoServicioTecSal\":\"01\",\"grupoServicios\":\"01\",\"codServicio\":325,\"finalidadTecnologiaSalud\":\"44\",\"causaMotivoAtencion\":\"38\",\"codDiagnosticoPrincipal\":\"Z000\",\"codDiagnosticoRelacionado1\":null,\"codDiagnosticoRelacionado2\":null,\"codDiagnosticoRelacionado3\":null,\"tipoDiagnosticoPrincipal\":\"01\",\"tipoDocumentoIdentificacion\":\"CC\",\"numDocumentoIdentificacion\":\"1000000001\",\"vrServicio\":100000,\"conceptoRecaudo\":\"05\",\"valorPagoModerador\":0,\"numFEVPagoModerador\":null,\"consecutivo\":1}]}}]}","provenance":{"sourceProfile":"native-d558206","declaration":"user-declared","inputFormat":"json","changeCount":0,"inputCount":1}},"replayed":false}}}},"202":{"description":"Intento registrado con resultado incierto o en curso. Requiere consulta/conciliación; no se reenvía.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RipsDispatchResult"},"example":{"attempt":{"id":"attempt-demo-001","revision":1,"outcome":"unknown","environment":2,"attemptedAt":"2026-09-01T15:02:00.000Z","completedAt":"2026-09-01T15:02:01.000Z","procesoId":null,"cuv":null,"message":"Resultado incierto. No reenviar.","requestDigest":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","validations":[],"reconciliation":null},"package":{"id":"pkg-demo-001","kind":"rips_sin_factura","status":"Unknown","revision":1,"isActive":true,"statusMessage":null,"numFactura":null,"numNota":"RS-DEMO-001","tipoNota":"RS","cufeOrCude":null,"attachedDocument":null,"sourceInvoiceId":null,"sourceCreditNoteId":null,"sourceDebitNoteId":null,"sourcePackageId":null,"procesoId":null,"cuv":null,"validation":{"id":"val-demo-001","revision":1,"outcome":"valid","current":true,"contentDigest":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","attachedDocumentSha256":null,"rulesVersion":"native-d558206","contextDigest":"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb","referencesDigest":"cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc","validatedAt":"2026-09-01T15:01:00.000Z"},"lastAttempt":{"id":"attempt-demo-001","revision":1,"outcome":"unknown","environment":2,"attemptedAt":"2026-09-01T15:02:00.000Z","completedAt":"2026-09-01T15:02:01.000Z","procesoId":null,"cuv":null,"message":"Resultado incierto. No reenviar.","requestDigest":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","validations":[],"reconciliation":null},"createdByUserId":"user-demo-001","createdAt":"2026-09-01T15:00:00.000Z","updatedAt":"2026-09-01T15:00:00.000Z","ripsPayloadJson":"{\"numDocumentoIdObligado\":\"900123456\",\"numFactura\":null,\"tipoNota\":\"RS\",\"numNota\":\"RS-DEMO-001\",\"usuarios\":[{\"tipoDocumentoIdentificacion\":\"CC\",\"numDocumentoIdentificacion\":\"1000000002\",\"tipoUsuario\":\"01\",\"fechaNacimiento\":\"1990-01-01\",\"codSexo\":\"F\",\"codPaisResidencia\":\"170\",\"codPaisOrigen\":\"170\",\"codMunicipioResidencia\":\"11001\",\"codZonaTerritorialResidencia\":\"01\",\"incapacidad\":\"NO\",\"consecutivo\":1,\"servicios\":{\"consultas\":[{\"codPrestador\":\"110010000101\",\"fechaInicioAtencion\":\"2026-09-01 10:00\",\"numAutorizacion\":null,\"codConsulta\":\"890201\",\"modalidadGrupoServicioTecSal\":\"01\",\"grupoServicios\":\"01\",\"codServicio\":325,\"finalidadTecnologiaSalud\":\"44\",\"causaMotivoAtencion\":\"38\",\"codDiagnosticoPrincipal\":\"Z000\",\"codDiagnosticoRelacionado1\":null,\"codDiagnosticoRelacionado2\":null,\"codDiagnosticoRelacionado3\":null,\"tipoDiagnosticoPrincipal\":\"01\",\"tipoDocumentoIdentificacion\":\"CC\",\"numDocumentoIdentificacion\":\"1000000001\",\"vrServicio\":100000,\"conceptoRecaudo\":\"05\",\"valorPagoModerador\":0,\"numFEVPagoModerador\":null,\"consecutivo\":1}]}}]}","workingPayloadJson":"{\"numDocumentoIdObligado\":\"900123456\",\"numFactura\":null,\"tipoNota\":\"RS\",\"numNota\":\"RS-DEMO-001\",\"usuarios\":[{\"tipoDocumentoIdentificacion\":\"CC\",\"numDocumentoIdentificacion\":\"1000000002\",\"tipoUsuario\":\"01\",\"fechaNacimiento\":\"1990-01-01\",\"codSexo\":\"F\",\"codPaisResidencia\":\"170\",\"codPaisOrigen\":\"170\",\"codMunicipioResidencia\":\"11001\",\"codZonaTerritorialResidencia\":\"01\",\"incapacidad\":\"NO\",\"consecutivo\":1,\"servicios\":{\"consultas\":[{\"codPrestador\":\"110010000101\",\"fechaInicioAtencion\":\"2026-09-01 10:00\",\"numAutorizacion\":null,\"codConsulta\":\"890201\",\"modalidadGrupoServicioTecSal\":\"01\",\"grupoServicios\":\"01\",\"codServicio\":325,\"finalidadTecnologiaSalud\":\"44\",\"causaMotivoAtencion\":\"38\",\"codDiagnosticoPrincipal\":\"Z000\",\"codDiagnosticoRelacionado1\":null,\"codDiagnosticoRelacionado2\":null,\"codDiagnosticoRelacionado3\":null,\"tipoDiagnosticoPrincipal\":\"01\",\"tipoDocumentoIdentificacion\":\"CC\",\"numDocumentoIdentificacion\":\"1000000001\",\"vrServicio\":100000,\"conceptoRecaudo\":\"05\",\"valorPagoModerador\":0,\"numFEVPagoModerador\":null,\"consecutivo\":1}]}}]}","provenance":{"sourceProfile":"native-d558206","declaration":"user-declared","inputFormat":"json","changeCount":0,"inputCount":1}},"replayed":false}}}},"400":{"description":"Rechazo: invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, invalid_request, server_owned_field, invalid_query, invalid_path.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_json":{"summary":"El cuerpo no es JSON válido.","value":{"error":{"code":"invalid_json","message":"El cuerpo no es JSON válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_key":{"summary":"El cuerpo repite una clave JSON.","value":{"error":{"code":"duplicate_key","message":"El cuerpo repite una clave JSON."},"requestId":"11111111-1111-4111-8111-111111111111"}},"json_syntax":{"summary":"El JSON tiene un error de sintaxis.","value":{"error":{"code":"json_syntax","message":"El JSON tiene un error de sintaxis."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, resource_archived, revision_conflict, credit_balance_exceeded, dispatch_in_progress, dispatch_conflict, submission_outcome_unknown, package_already_accepted, submission_receipt_missing, sispro_credentials_missing, authorization_changed, invalid_field_profile, invoice_provider_not_configured, invoice_provider_company_mismatch, artifact_context_unverified.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"resource_archived":{"summary":"El recurso está archivado.","value":{"error":{"code":"resource_archived","message":"El recurso está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"422":{"description":"Rechazo: package_validation_failed, reference_not_accepted, credit_total_mismatch, attached_document_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"package_validation_failed":{"summary":"La revisión no cumple las reglas de envío.","value":{"error":{"code":"package_validation_failed","message":"La revisión no cumple las reglas de envío."},"requestId":"11111111-1111-4111-8111-111111111111"}},"reference_not_accepted":{"summary":"La referencia no tiene un resultado aceptado y verificado en este espacio.","value":{"error":{"code":"reference_not_accepted","message":"La referencia no tiene un resultado aceptado y verificado en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}},"credit_total_mismatch":{"summary":"Una nota crédito total debe igualar el saldo de la factura.","value":{"error":{"code":"credit_total_mismatch","message":"Una nota crédito total debe igualar el saldo de la factura."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"502":{"description":"Rechazo: invoice_provider_unavailable, artifact_download_failed.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invoice_provider_unavailable":{"summary":"PahFacturar no respondió. Intente de nuevo.","value":{"error":{"code":"invoice_provider_unavailable","message":"PahFacturar no respondió. Intente de nuevo."},"requestId":"11111111-1111-4111-8111-111111111111"}},"artifact_download_failed":{"summary":"No fue posible descargar el artefacto del proveedor.","value":{"error":{"code":"artifact_download_failed","message":"No fue posible descargar el artefacto del proveedor."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"503":{"description":"Rechazo: upstream_configuration_invalid.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"upstream_configuration_invalid":{"summary":"La conexión con el servicio externo no está configurada para este entorno.","value":{"error":{"code":"upstream_configuration_invalid","message":"La conexión con el servicio externo no está configurada para este entorno."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"get":{"operationId":"ripsPackages.listDispatches","tags":["Paquetes RIPS"],"summary":"Consultar los intentos de envío y su evidencia","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"packageId","in":"path"}],"responses":{"200":{"description":"Intentos inmutables.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DispatchAttemptList"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/rips-packages/{packageId}/reconciliations":{"post":{"operationId":"ripsPackages.reconcile","tags":["Paquetes RIPS"],"summary":"Conciliar un resultado incierto","description":"Consulta un CUV que ya conoce el cliente y lo compara con el snapshot inmutable del intento. No descubre CUV por número de factura. Si falta el CUV, conserve Unknown y escale la recuperación; no use una clave nueva para reenviar. Solo evidencia concluyente resuelve el estado; nunca reenvía el paquete. Requiere una membresía activa en el espacio de la ruta. Requiere Idempotency-Key. PAT: requiere el permiso send y acceso al espacio de la ruta, cuando exista. Límite del cuerpo HTTP: 1000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"external","x-ripscloud-idempotency":"required","x-ripscloud-pat-scope":"send","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"packageId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":true,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReconcileDispatchInput"},"examples":{"knownCuv":{"summary":"Conciliar con un CUV conocido","value":{"attemptId":"attempt-demo-001","evidence":{"cuv":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}}}}}}},"responses":{"200":{"description":"Intento conciliado como aceptado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RipsDispatchResult"},"example":{"attempt":{"id":"attempt-demo-001","revision":1,"outcome":"accepted","environment":2,"attemptedAt":"2026-09-01T15:02:00.000Z","completedAt":"2026-09-01T15:02:01.000Z","procesoId":"123456","cuv":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","message":"Ejemplo sintético de recibo verificado","requestDigest":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","validations":[],"reconciliation":{"evidenceCuv":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","outcome":"accepted","reconciledAt":"2026-09-01T15:05:00.000Z"}},"package":{"id":"pkg-demo-001","kind":"rips_sin_factura","status":"Accepted","revision":1,"isActive":true,"statusMessage":null,"numFactura":null,"numNota":"RS-DEMO-001","tipoNota":"RS","cufeOrCude":null,"attachedDocument":null,"sourceInvoiceId":null,"sourceCreditNoteId":null,"sourceDebitNoteId":null,"sourcePackageId":null,"procesoId":"123456","cuv":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","validation":{"id":"val-demo-001","revision":1,"outcome":"valid","current":true,"contentDigest":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","attachedDocumentSha256":null,"rulesVersion":"native-d558206","contextDigest":"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb","referencesDigest":"cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc","validatedAt":"2026-09-01T15:01:00.000Z"},"lastAttempt":{"id":"attempt-demo-001","revision":1,"outcome":"accepted","environment":2,"attemptedAt":"2026-09-01T15:02:00.000Z","completedAt":"2026-09-01T15:02:01.000Z","procesoId":"123456","cuv":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","message":"Ejemplo sintético de recibo verificado","requestDigest":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","validations":[],"reconciliation":{"evidenceCuv":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","outcome":"accepted","reconciledAt":"2026-09-01T15:05:00.000Z"}},"createdByUserId":"user-demo-001","createdAt":"2026-09-01T15:00:00.000Z","updatedAt":"2026-09-01T15:00:00.000Z","ripsPayloadJson":"{\"numDocumentoIdObligado\":\"900123456\",\"numFactura\":null,\"tipoNota\":\"RS\",\"numNota\":\"RS-DEMO-001\",\"usuarios\":[{\"tipoDocumentoIdentificacion\":\"CC\",\"numDocumentoIdentificacion\":\"1000000002\",\"tipoUsuario\":\"01\",\"fechaNacimiento\":\"1990-01-01\",\"codSexo\":\"F\",\"codPaisResidencia\":\"170\",\"codPaisOrigen\":\"170\",\"codMunicipioResidencia\":\"11001\",\"codZonaTerritorialResidencia\":\"01\",\"incapacidad\":\"NO\",\"consecutivo\":1,\"servicios\":{\"consultas\":[{\"codPrestador\":\"110010000101\",\"fechaInicioAtencion\":\"2026-09-01 10:00\",\"numAutorizacion\":null,\"codConsulta\":\"890201\",\"modalidadGrupoServicioTecSal\":\"01\",\"grupoServicios\":\"01\",\"codServicio\":325,\"finalidadTecnologiaSalud\":\"44\",\"causaMotivoAtencion\":\"38\",\"codDiagnosticoPrincipal\":\"Z000\",\"codDiagnosticoRelacionado1\":null,\"codDiagnosticoRelacionado2\":null,\"codDiagnosticoRelacionado3\":null,\"tipoDiagnosticoPrincipal\":\"01\",\"tipoDocumentoIdentificacion\":\"CC\",\"numDocumentoIdentificacion\":\"1000000001\",\"vrServicio\":100000,\"conceptoRecaudo\":\"05\",\"valorPagoModerador\":0,\"numFEVPagoModerador\":null,\"consecutivo\":1}]}}]}","workingPayloadJson":"{\"numDocumentoIdObligado\":\"900123456\",\"numFactura\":null,\"tipoNota\":\"RS\",\"numNota\":\"RS-DEMO-001\",\"usuarios\":[{\"tipoDocumentoIdentificacion\":\"CC\",\"numDocumentoIdentificacion\":\"1000000002\",\"tipoUsuario\":\"01\",\"fechaNacimiento\":\"1990-01-01\",\"codSexo\":\"F\",\"codPaisResidencia\":\"170\",\"codPaisOrigen\":\"170\",\"codMunicipioResidencia\":\"11001\",\"codZonaTerritorialResidencia\":\"01\",\"incapacidad\":\"NO\",\"consecutivo\":1,\"servicios\":{\"consultas\":[{\"codPrestador\":\"110010000101\",\"fechaInicioAtencion\":\"2026-09-01 10:00\",\"numAutorizacion\":null,\"codConsulta\":\"890201\",\"modalidadGrupoServicioTecSal\":\"01\",\"grupoServicios\":\"01\",\"codServicio\":325,\"finalidadTecnologiaSalud\":\"44\",\"causaMotivoAtencion\":\"38\",\"codDiagnosticoPrincipal\":\"Z000\",\"codDiagnosticoRelacionado1\":null,\"codDiagnosticoRelacionado2\":null,\"codDiagnosticoRelacionado3\":null,\"tipoDiagnosticoPrincipal\":\"01\",\"tipoDocumentoIdentificacion\":\"CC\",\"numDocumentoIdentificacion\":\"1000000001\",\"vrServicio\":100000,\"conceptoRecaudo\":\"05\",\"valorPagoModerador\":0,\"numFEVPagoModerador\":null,\"consecutivo\":1}]}}]}","provenance":{"sourceProfile":"native-d558206","declaration":"user-declared","inputFormat":"json","changeCount":0,"inputCount":1}},"replayed":false}}}},"400":{"description":"Rechazo: invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, invalid_request, server_owned_field, invalid_query, invalid_path.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_json":{"summary":"El cuerpo no es JSON válido.","value":{"error":{"code":"invalid_json","message":"El cuerpo no es JSON válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_key":{"summary":"El cuerpo repite una clave JSON.","value":{"error":{"code":"duplicate_key","message":"El cuerpo repite una clave JSON."},"requestId":"11111111-1111-4111-8111-111111111111"}},"json_syntax":{"summary":"El JSON tiene un error de sintaxis.","value":{"error":{"code":"json_syntax","message":"El JSON tiene un error de sintaxis."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, reconciliation_not_applicable, sispro_credentials_missing, authorization_changed.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"reconciliation_not_applicable":{"summary":"Solo un resultado incierto se puede conciliar.","value":{"error":{"code":"reconciliation_not_applicable","message":"Solo un resultado incierto se puede conciliar."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"422":{"description":"Rechazo: reconciliation_inconclusive.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"reconciliation_inconclusive":{"summary":"La evidencia no resuelve el resultado. El estado sigue incierto.","value":{"error":{"code":"reconciliation_inconclusive","message":"La evidencia no resuelve el resultado. El estado sigue incierto."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"503":{"description":"Rechazo: upstream_configuration_invalid.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"upstream_configuration_invalid":{"summary":"La conexión con el servicio externo no está configurada para este entorno.","value":{"error":{"code":"upstream_configuration_invalid","message":"La conexión con el servicio externo no está configurada para este entorno."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/health-invoices":{"get":{"operationId":"healthInvoices.list","tags":["Facturas de salud"],"summary":"Listar facturas de salud","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":100000,"description":"Página inicial 1 (valor predeterminado).","example":1},"required":false,"description":"Página inicial 1 (valor predeterminado).","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":500,"description":"Registros por página: 100 por defecto, máximo 500.","example":100},"required":false,"description":"Registros por página: 100 por defecto, máximo 500.","name":"pageSize","in":"query"},{"schema":{"type":"string","enum":["asc","desc"]},"required":false,"name":"sortDirection","in":"query"},{"schema":{"type":"string","maxLength":128},"required":false,"name":"clientName","in":"query"},{"schema":{"type":"string","maxLength":40},"required":false,"name":"status","in":"query"},{"schema":{"type":"string","maxLength":40,"description":"Fecha/hora ISO 8601 inclusiva; enviar un valor UTC válido.","example":"2026-09-01T00:00:00.000Z"},"required":false,"description":"Fecha/hora ISO 8601 inclusiva; enviar un valor UTC válido.","name":"createdFrom","in":"query"},{"schema":{"type":"string","maxLength":40,"description":"Fecha/hora ISO 8601 inclusiva; enviar un valor UTC válido.","example":"2026-09-30T23:59:59.999Z"},"required":false,"description":"Fecha/hora ISO 8601 inclusiva; enviar un valor UTC válido.","name":"createdTo","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"includeArchived","in":"query"},{"schema":{"type":"string","enum":["invoiceNumber","clientName","status","createdAt","updatedAt","totalAmount"]},"required":false,"name":"sortBy","in":"query"},{"schema":{"type":"string","maxLength":60},"required":false,"name":"invoiceNumber","in":"query"},{"schema":{"type":"string","maxLength":128},"required":false,"name":"submittedBy","in":"query"},{"schema":{"type":["number","null"]},"required":false,"name":"totalMin","in":"query"},{"schema":{"type":["number","null"]},"required":false,"name":"totalMax","in":"query"}],"responses":{"200":{"description":"Página de facturas.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthInvoicePage"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"post":{"operationId":"healthInvoices.emit","tags":["Facturas de salud"],"summary":"Emitir una factura de salud por PahFacturar","description":"Valida el contenido antes de reservar número. Registra la intención antes de crear el documento en el proveedor. Un resultado incierto bloquea otra emisión. Requiere una membresía activa en el espacio de la ruta. Requiere Idempotency-Key. PAT: requiere el permiso send y acceso al espacio de la ruta, cuando exista. Límite del cuerpo HTTP: 26000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"external","x-ripscloud-idempotency":"required","x-ripscloud-pat-scope":"send","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":true,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmitHealthInvoiceInput"},"examples":{"healthInvoice":{"summary":"Factura con RIPS de trabajo","description":"Datos sintéticos. Use los identificadores de GET /health-invoices/context y /credit-note-context, la configuración y el saldo reales. Los ejemplos no autorizan una emisión ni prueban aceptación DIAN.","value":{"clientId":"payer-demo-001","invoiceResolutionId":"resolution-demo-001","invoicePayload":{"invoice_lines":[{"description":"Consulta de medicina general (ejemplo sintético)","code":"890201","invoiced_quantity":"1","price_amount":"100000.00","line_extension_amount":"100000.00"}],"legal_monetary_totals":{"line_extension_amount":"100000.00","tax_exclusive_amount":"100000.00","tax_inclusive_amount":"100000.00","payable_amount":"100000.00"},"payment_form":{"payment_form_id":1,"payment_method_id":10},"health_fields":{"invoice_period_start_date":"2026-09-01","invoice_period_end_date":"2026-09-30","health_type_operation_id":"SS-CUFE","users_info":[{"provider_code":"110010000101","health_coverage_id":"01","health_contracting_payment_method_id":"04","contract_number":"CONTRATO-DEMO"}]}},"rips":{"numDocumentoIdObligado":"900123456","numFactura":null,"tipoNota":null,"numNota":null,"usuarios":[{"tipoDocumentoIdentificacion":"CC","numDocumentoIdentificacion":"1000000002","tipoUsuario":"01","fechaNacimiento":"1990-01-01","codSexo":"F","codPaisResidencia":"170","codPaisOrigen":"170","codMunicipioResidencia":"11001","codZonaTerritorialResidencia":"01","incapacidad":"NO","consecutivo":1,"servicios":{"consultas":[{"codPrestador":"110010000101","fechaInicioAtencion":"2026-09-01 10:00","numAutorizacion":null,"codConsulta":"890201","modalidadGrupoServicioTecSal":"01","grupoServicios":"01","codServicio":325,"finalidadTecnologiaSalud":"44","causaMotivoAtencion":"38","codDiagnosticoPrincipal":"Z000","codDiagnosticoRelacionado1":null,"codDiagnosticoRelacionado2":null,"codDiagnosticoRelacionado3":null,"tipoDiagnosticoPrincipal":"01","tipoDocumentoIdentificacion":"CC","numDocumentoIdentificacion":"1000000001","vrServicio":100000,"conceptoRecaudo":"05","valorPagoModerador":0,"numFEVPagoModerador":null,"consecutivo":1}]}}]}}}}}}},"responses":{"201":{"description":"Documento aceptado o con rechazo terminal registrado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthInvoice"}}}},"202":{"description":"Emisión registrada con resultado incierto o en curso.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthInvoice"}}}},"400":{"description":"Rechazo: invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, invalid_request, server_owned_field, invalid_query, invalid_path, invalid_rips_input, invalid_medication_code.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_json":{"summary":"El cuerpo no es JSON válido.","value":{"error":{"code":"invalid_json","message":"El cuerpo no es JSON válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_key":{"summary":"El cuerpo repite una clave JSON.","value":{"error":{"code":"duplicate_key","message":"El cuerpo repite una clave JSON."},"requestId":"11111111-1111-4111-8111-111111111111"}},"json_syntax":{"summary":"El JSON tiene un error de sintaxis.","value":{"error":{"code":"json_syntax","message":"El JSON tiene un error de sintaxis."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, invoice_provider_not_configured, invoice_provider_company_mismatch, resolution_unavailable, provider_dispatch_in_progress, provider_outcome_unknown, health_document_not_emittable, authorization_changed.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invoice_provider_not_configured":{"summary":"Configure el token, el equipo y la empresa de PahFacturar.","value":{"error":{"code":"invoice_provider_not_configured","message":"Configure el token, el equipo y la empresa de PahFacturar."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"422":{"description":"Rechazo: health_document_invalid.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"health_document_invalid":{"summary":"El contenido del documento de salud no cumple las reglas de emisión.","value":{"error":{"code":"health_document_invalid","message":"El contenido del documento de salud no cumple las reglas de emisión."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"502":{"description":"Rechazo: invoice_provider_unavailable.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invoice_provider_unavailable":{"summary":"PahFacturar no respondió. Intente de nuevo.","value":{"error":{"code":"invoice_provider_unavailable","message":"PahFacturar no respondió. Intente de nuevo."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"503":{"description":"Rechazo: upstream_configuration_invalid.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"upstream_configuration_invalid":{"summary":"La conexión con el servicio externo no está configurada para este entorno.","value":{"error":{"code":"upstream_configuration_invalid","message":"La conexión con el servicio externo no está configurada para este entorno."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/health-invoices/{invoiceId}":{"get":{"operationId":"healthInvoices.get","tags":["Facturas de salud"],"summary":"Consultar una factura de salud","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"invoiceId","in":"path"}],"responses":{"200":{"description":"Factura con su historial.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthInvoice"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/health-invoices/{invoiceId}/emissions":{"post":{"operationId":"healthInvoices.retryEmission","tags":["Facturas de salud"],"summary":"Reintentar la emisión","description":"Solo para Pending o Failed sin CUFE, o para completar una emisión aceptada por el proveedor. Nunca crea otro documento sobre un resultado incierto. Requiere una membresía activa en el espacio de la ruta. Requiere Idempotency-Key. PAT: requiere el permiso send y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"external","x-ripscloud-idempotency":"required","x-ripscloud-pat-scope":"send","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"invoiceId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":true,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Resultado terminal registrado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthInvoice"}}}},"202":{"description":"Resultado incierto o en curso.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthInvoice"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, invoice_provider_not_configured, invoice_provider_company_mismatch, resolution_unavailable, provider_dispatch_in_progress, provider_outcome_unknown, health_document_not_emittable, authorization_changed, resource_archived.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invoice_provider_not_configured":{"summary":"Configure el token, el equipo y la empresa de PahFacturar.","value":{"error":{"code":"invoice_provider_not_configured","message":"Configure el token, el equipo y la empresa de PahFacturar."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"422":{"description":"Rechazo: health_document_invalid.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"health_document_invalid":{"summary":"El contenido del documento de salud no cumple las reglas de emisión.","value":{"error":{"code":"health_document_invalid","message":"El contenido del documento de salud no cumple las reglas de emisión."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"502":{"description":"Rechazo: invoice_provider_unavailable.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invoice_provider_unavailable":{"summary":"PahFacturar no respondió. Intente de nuevo.","value":{"error":{"code":"invoice_provider_unavailable","message":"PahFacturar no respondió. Intente de nuevo."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"503":{"description":"Rechazo: upstream_configuration_invalid.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"upstream_configuration_invalid":{"summary":"La conexión con el servicio externo no está configurada para este entorno.","value":{"error":{"code":"upstream_configuration_invalid","message":"La conexión con el servicio externo no está configurada para este entorno."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/health-invoices/{invoiceId}/reconciliations":{"post":{"operationId":"healthInvoices.reconcile","tags":["Facturas de salud"],"summary":"Conciliar una emisión incierta","description":"Verifica el UUID conocido de PahFacturar contra la intención registrada (empresa, tipo, número y contenido). No recupera un UUID perdido ni busca por número. Sin UUID, conserve Unknown y solicite recuperación. Solo evidencia concluyente resuelve el estado; no crea documentos. Requiere una membresía activa en el espacio de la ruta. Requiere Idempotency-Key. PAT: requiere el permiso send y acceso al espacio de la ruta, cuando exista. Límite del cuerpo HTTP: 1000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"external","x-ripscloud-idempotency":"required","x-ripscloud-pat-scope":"send","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"invoiceId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":true,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReconcileHealthDocumentInput"},"examples":{"knownProviderId":{"summary":"Conciliar con el UUID ya conocido del proveedor","value":{"providerDocumentId":"11111111-1111-4111-8111-111111111111"}}}}}},"responses":{"200":{"description":"Emisión conciliada.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthInvoice"}}}},"400":{"description":"Rechazo: invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, invalid_request, server_owned_field, invalid_query, invalid_path.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_json":{"summary":"El cuerpo no es JSON válido.","value":{"error":{"code":"invalid_json","message":"El cuerpo no es JSON válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_key":{"summary":"El cuerpo repite una clave JSON.","value":{"error":{"code":"duplicate_key","message":"El cuerpo repite una clave JSON."},"requestId":"11111111-1111-4111-8111-111111111111"}},"json_syntax":{"summary":"El JSON tiene un error de sintaxis.","value":{"error":{"code":"json_syntax","message":"El JSON tiene un error de sintaxis."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, reconciliation_not_applicable, invoice_provider_not_configured, authorization_changed.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"reconciliation_not_applicable":{"summary":"Solo un resultado incierto se puede conciliar.","value":{"error":{"code":"reconciliation_not_applicable","message":"Solo un resultado incierto se puede conciliar."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"422":{"description":"Rechazo: reconciliation_inconclusive.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"reconciliation_inconclusive":{"summary":"La evidencia no resuelve el resultado. El estado sigue incierto.","value":{"error":{"code":"reconciliation_inconclusive","message":"La evidencia no resuelve el resultado. El estado sigue incierto."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"502":{"description":"Rechazo: invoice_provider_unavailable.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invoice_provider_unavailable":{"summary":"PahFacturar no respondió. Intente de nuevo.","value":{"error":{"code":"invoice_provider_unavailable","message":"PahFacturar no respondió. Intente de nuevo."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/health-invoices/{invoiceId}/artifacts/{artifact}":{"get":{"operationId":"healthInvoices.downloadArtifact","tags":["Facturas de salud"],"summary":"Descargar PDF o XML","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso send y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"external","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"send","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"invoiceId","in":"path"},{"schema":{"type":"string","enum":["pdf","xml","attached"]},"required":true,"name":"artifact","in":"path"}],"responses":{"200":{"description":"Artefacto del documento aceptado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found, document_not_available.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}},"document_not_available":{"summary":"El documento solicitado no está disponible.","value":{"error":{"code":"document_not_available","message":"El documento solicitado no está disponible."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: authorization_changed, artifact_context_unverified, invoice_provider_not_configured.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"authorization_changed":{"summary":"Los permisos cambiaron durante la operación. No se realizó ningún efecto externo.","value":{"error":{"code":"authorization_changed","message":"Los permisos cambiaron durante la operación. No se realizó ningún efecto externo."},"requestId":"11111111-1111-4111-8111-111111111111"}},"artifact_context_unverified":{"summary":"El artefacto no corresponde al documento aceptado.","value":{"error":{"code":"artifact_context_unverified","message":"El artefacto no corresponde al documento aceptado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invoice_provider_not_configured":{"summary":"Configure el token, el equipo y la empresa de PahFacturar.","value":{"error":{"code":"invoice_provider_not_configured","message":"Configure el token, el equipo y la empresa de PahFacturar."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"502":{"description":"Rechazo: artifact_download_failed.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"artifact_download_failed":{"summary":"No fue posible descargar el artefacto del proveedor.","value":{"error":{"code":"artifact_download_failed","message":"No fue posible descargar el artefacto del proveedor."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/health-invoices/{invoiceId}/export":{"get":{"operationId":"healthInvoices.export","tags":["Facturas de salud"],"summary":"Exportar la factura y su RIPS en JSON","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"invoiceId","in":"path"}],"responses":{"200":{"description":"Paquete JSON.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonObject"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/health-invoices/{invoiceId}/email":{"post":{"operationId":"healthInvoices.sendEmail","tags":["Facturas de salud"],"summary":"Enviar la factura por correo","description":"El correo se reclama de forma atómica antes del envío. La misma clave y contenido devuelve el resultado confirmado. Si SMTP falla, demora o se pierde la respuesta, email_outcome_unknown bloquea el reenvío automático con esa clave. Verifique la entrega antes de usar una clave nueva para evitar duplicados. Requiere una membresía activa en el espacio de la ruta. Requiere Idempotency-Key. PAT: requiere el permiso send y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"external","x-ripscloud-idempotency":"required","x-ripscloud-pat-scope":"send","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"invoiceId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":true,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Correo enviado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailResult"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found, document_not_available.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}},"document_not_available":{"summary":"El documento solicitado no está disponible.","value":{"error":{"code":"document_not_available","message":"El documento solicitado no está disponible."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: authorization_changed, idempotency_key_reused, idempotency_in_progress, email_disabled, email_outcome_unknown, artifact_context_unverified.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"authorization_changed":{"summary":"Los permisos cambiaron durante la operación. No se realizó ningún efecto externo.","value":{"error":{"code":"authorization_changed","message":"Los permisos cambiaron durante la operación. No se realizó ningún efecto externo."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: email_attachment_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"email_attachment_too_large":{"summary":"El adjunto supera el límite de correo.","value":{"error":{"code":"email_attachment_too_large","message":"El adjunto supera el límite de correo."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"422":{"description":"Rechazo: recipient_email_missing.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"recipient_email_missing":{"summary":"El cliente no tiene correo registrado.","value":{"error":{"code":"recipient_email_missing","message":"El cliente no tiene correo registrado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"502":{"description":"Rechazo: artifact_download_failed.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"artifact_download_failed":{"summary":"No fue posible descargar el artefacto del proveedor.","value":{"error":{"code":"artifact_download_failed","message":"No fue posible descargar el artefacto del proveedor."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"503":{"description":"Rechazo: email_not_configured.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"email_not_configured":{"summary":"El correo saliente no está configurado.","value":{"error":{"code":"email_not_configured","message":"El correo saliente no está configurado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/health-invoices/{invoiceId}/rips-package":{"post":{"operationId":"healthInvoices.prepareRipsPackage","tags":["Facturas de salud"],"summary":"Preparar el RIPS fev_rips de la factura","description":"Usa la factura aceptada como fuente: número, CUFE y XML adjunto del proveedor. El paquete referencia la factura en el sistema de facturación y no guarda el XML. Devuelve el borrador vinculado existente o crea uno. No envía al Ministerio. Requiere una membresía activa en el espacio de la ruta. Acepta Idempotency-Key. PAT: requiere el permiso send y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"external","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":"send","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"invoiceId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Paquete vinculado existente.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"ETag":{"$ref":"#/components/headers/ResourceRevision"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RipsPackage"}}}},"201":{"description":"Paquete creado desde la factura.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"ETag":{"$ref":"#/components/headers/ResourceRevision"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RipsPackage"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found, document_not_available.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}},"document_not_available":{"summary":"El documento solicitado no está disponible.","value":{"error":{"code":"document_not_available","message":"El documento solicitado no está disponible."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: authorization_changed, idempotency_key_reused, idempotency_in_progress, artifact_context_unverified.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"authorization_changed":{"summary":"Los permisos cambiaron durante la operación. No se realizó ningún efecto externo.","value":{"error":{"code":"authorization_changed","message":"Los permisos cambiaron durante la operación. No se realizó ningún efecto externo."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"422":{"description":"Rechazo: source_invoice_not_accepted, source_rips_missing.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"source_invoice_not_accepted":{"summary":"La factura de origen no tiene CUFE aceptado.","value":{"error":{"code":"source_invoice_not_accepted","message":"La factura de origen no tiene CUFE aceptado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"source_rips_missing":{"summary":"La factura de origen no tiene RIPS aceptado o guardado.","value":{"error":{"code":"source_rips_missing","message":"La factura de origen no tiene RIPS aceptado o guardado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"502":{"description":"Rechazo: artifact_download_failed.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"artifact_download_failed":{"summary":"No fue posible descargar el artefacto del proveedor.","value":{"error":{"code":"artifact_download_failed","message":"No fue posible descargar el artefacto del proveedor."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/credit-notes":{"get":{"operationId":"creditNotes.list","tags":["Notas crédito"],"summary":"Listar notas crédito de salud","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":100000,"description":"Página inicial 1 (valor predeterminado).","example":1},"required":false,"description":"Página inicial 1 (valor predeterminado).","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":500,"description":"Registros por página: 100 por defecto, máximo 500.","example":100},"required":false,"description":"Registros por página: 100 por defecto, máximo 500.","name":"pageSize","in":"query"},{"schema":{"type":"string","enum":["asc","desc"]},"required":false,"name":"sortDirection","in":"query"},{"schema":{"type":"string","maxLength":128},"required":false,"name":"clientName","in":"query"},{"schema":{"type":"string","maxLength":40},"required":false,"name":"status","in":"query"},{"schema":{"type":"string","maxLength":40,"description":"Fecha/hora ISO 8601 inclusiva; enviar un valor UTC válido.","example":"2026-09-01T00:00:00.000Z"},"required":false,"description":"Fecha/hora ISO 8601 inclusiva; enviar un valor UTC válido.","name":"createdFrom","in":"query"},{"schema":{"type":"string","maxLength":40,"description":"Fecha/hora ISO 8601 inclusiva; enviar un valor UTC válido.","example":"2026-09-30T23:59:59.999Z"},"required":false,"description":"Fecha/hora ISO 8601 inclusiva; enviar un valor UTC válido.","name":"createdTo","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"includeArchived","in":"query"},{"schema":{"type":"string","enum":["creditNoteNumber","originalInvoiceNumber","clientName","status","createdAt","updatedAt","totalAmount"]},"required":false,"name":"sortBy","in":"query"},{"schema":{"type":"string","maxLength":60},"required":false,"name":"creditNoteNumber","in":"query"},{"schema":{"type":"string","maxLength":60},"required":false,"name":"originalInvoiceNumber","in":"query"}],"responses":{"200":{"description":"Página de notas.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditNotePage"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"post":{"operationId":"creditNotes.emit","tags":["Notas crédito"],"summary":"Emitir una nota crédito de salud por PahFacturar","description":"Deriva cliente, referencia y campos de salud de la factura aceptada; verifica el saldo dentro de la transacción que serializa las notas de esa factura. Requiere una membresía activa en el espacio de la ruta. Requiere Idempotency-Key. PAT: requiere el permiso send y acceso al espacio de la ruta, cuando exista. Límite del cuerpo HTTP: 1000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"external","x-ripscloud-idempotency":"required","x-ripscloud-pat-scope":"send","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":true,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmitCreditNoteInput"},"examples":{"partial":{"summary":"Nota parcial con selección de servicio","description":"Datos sintéticos. Use los identificadores de GET /health-invoices/context y /credit-note-context, la configuración y el saldo reales. Los ejemplos no autorizan una emisión ni prueban aceptación DIAN.","value":{"invoiceId":"invoice-demo-001","creditNoteResolutionId":"credit-resolution-demo-001","discrepancyResponseCode":1,"discrepancyResponseDescription":"Devolución de servicio (ejemplo sintético)","selectedItems":[{"patientConsecutivo":1,"includeAllServices":false,"selectedServices":[{"serviceCategory":"consultas","serviceConsecutivo":1}]}],"creditNotePayload":{"credit_note_lines":[{"description":"Consulta de medicina general (ejemplo sintético)","code":"890201","invoiced_quantity":"1","price_amount":"100000.00","line_extension_amount":"100000.00"}],"legal_monetary_totals":{"line_extension_amount":"100000.00","tax_exclusive_amount":"100000.00","tax_inclusive_amount":"100000.00","payable_amount":"100000.00"}}}},"total":{"summary":"Nota de anulación total","description":"Datos sintéticos. Use los identificadores de GET /health-invoices/context y /credit-note-context, la configuración y el saldo reales. Los ejemplos no autorizan una emisión ni prueban aceptación DIAN.","value":{"invoiceId":"invoice-demo-001","creditNoteResolutionId":"credit-resolution-demo-001","discrepancyResponseCode":2,"discrepancyResponseDescription":"Anulación total (ejemplo sintético)","creditNotePayload":{"credit_note_lines":[{"description":"Consulta de medicina general (ejemplo sintético)","code":"890201","invoiced_quantity":"1","price_amount":"100000.00","line_extension_amount":"100000.00"}],"legal_monetary_totals":{"line_extension_amount":"100000.00","tax_exclusive_amount":"100000.00","tax_inclusive_amount":"100000.00","payable_amount":"100000.00"}}}}}}}},"responses":{"201":{"description":"Documento aceptado o con rechazo terminal registrado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditNote"}}}},"202":{"description":"Emisión registrada con resultado incierto o en curso.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditNote"}}}},"400":{"description":"Rechazo: invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, invalid_request, server_owned_field, invalid_query, invalid_path.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_json":{"summary":"El cuerpo no es JSON válido.","value":{"error":{"code":"invalid_json","message":"El cuerpo no es JSON válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_key":{"summary":"El cuerpo repite una clave JSON.","value":{"error":{"code":"duplicate_key","message":"El cuerpo repite una clave JSON."},"requestId":"11111111-1111-4111-8111-111111111111"}},"json_syntax":{"summary":"El JSON tiene un error de sintaxis.","value":{"error":{"code":"json_syntax","message":"El JSON tiene un error de sintaxis."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, invoice_provider_not_configured, invoice_provider_company_mismatch, resolution_unavailable, provider_dispatch_in_progress, provider_outcome_unknown, health_document_not_emittable, authorization_changed, credit_balance_exceeded.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invoice_provider_not_configured":{"summary":"Configure el token, el equipo y la empresa de PahFacturar.","value":{"error":{"code":"invoice_provider_not_configured","message":"Configure el token, el equipo y la empresa de PahFacturar."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"422":{"description":"Rechazo: health_document_invalid, source_invoice_not_accepted, source_customer_missing, source_rips_missing, credit_note_selection_invalid, credit_total_mismatch.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"health_document_invalid":{"summary":"El contenido del documento de salud no cumple las reglas de emisión.","value":{"error":{"code":"health_document_invalid","message":"El contenido del documento de salud no cumple las reglas de emisión."},"requestId":"11111111-1111-4111-8111-111111111111"}},"source_invoice_not_accepted":{"summary":"La factura de origen no tiene CUFE aceptado.","value":{"error":{"code":"source_invoice_not_accepted","message":"La factura de origen no tiene CUFE aceptado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"source_customer_missing":{"summary":"La factura de origen no identifica al cliente.","value":{"error":{"code":"source_customer_missing","message":"La factura de origen no identifica al cliente."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"502":{"description":"Rechazo: invoice_provider_unavailable.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invoice_provider_unavailable":{"summary":"PahFacturar no respondió. Intente de nuevo.","value":{"error":{"code":"invoice_provider_unavailable","message":"PahFacturar no respondió. Intente de nuevo."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"503":{"description":"Rechazo: upstream_configuration_invalid.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"upstream_configuration_invalid":{"summary":"La conexión con el servicio externo no está configurada para este entorno.","value":{"error":{"code":"upstream_configuration_invalid","message":"La conexión con el servicio externo no está configurada para este entorno."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/health-invoices/{invoiceId}/credit-note-context":{"get":{"operationId":"creditNotes.getContext","tags":["Notas crédito"],"summary":"Contexto para emitir una nota crédito","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"invoiceId","in":"path"}],"responses":{"200":{"description":"Factura, saldo, pacientes y resoluciones vigentes.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditNoteContext"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/credit-notes/{creditNoteId}":{"get":{"operationId":"creditNotes.get","tags":["Notas crédito"],"summary":"Consultar una nota crédito","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"creditNoteId","in":"path"}],"responses":{"200":{"description":"Nota con su historial.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditNote"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/credit-notes/{creditNoteId}/emissions":{"post":{"operationId":"creditNotes.retryEmission","tags":["Notas crédito"],"summary":"Reintentar la emisión de la nota","description":"Requiere una membresía activa en el espacio de la ruta. Requiere Idempotency-Key. PAT: requiere el permiso send y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"external","x-ripscloud-idempotency":"required","x-ripscloud-pat-scope":"send","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"creditNoteId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":true,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Resultado terminal registrado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditNote"}}}},"202":{"description":"Resultado incierto o en curso.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditNote"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, invoice_provider_not_configured, invoice_provider_company_mismatch, resolution_unavailable, provider_dispatch_in_progress, provider_outcome_unknown, health_document_not_emittable, authorization_changed, resource_archived, credit_balance_exceeded.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invoice_provider_not_configured":{"summary":"Configure el token, el equipo y la empresa de PahFacturar.","value":{"error":{"code":"invoice_provider_not_configured","message":"Configure el token, el equipo y la empresa de PahFacturar."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"422":{"description":"Rechazo: health_document_invalid.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"health_document_invalid":{"summary":"El contenido del documento de salud no cumple las reglas de emisión.","value":{"error":{"code":"health_document_invalid","message":"El contenido del documento de salud no cumple las reglas de emisión."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"502":{"description":"Rechazo: invoice_provider_unavailable.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invoice_provider_unavailable":{"summary":"PahFacturar no respondió. Intente de nuevo.","value":{"error":{"code":"invoice_provider_unavailable","message":"PahFacturar no respondió. Intente de nuevo."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"503":{"description":"Rechazo: upstream_configuration_invalid.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"upstream_configuration_invalid":{"summary":"La conexión con el servicio externo no está configurada para este entorno.","value":{"error":{"code":"upstream_configuration_invalid","message":"La conexión con el servicio externo no está configurada para este entorno."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/credit-notes/{creditNoteId}/reconciliations":{"post":{"operationId":"creditNotes.reconcile","tags":["Notas crédito"],"summary":"Conciliar una emisión incierta","description":"Requiere una membresía activa en el espacio de la ruta. Requiere Idempotency-Key. PAT: requiere el permiso send y acceso al espacio de la ruta, cuando exista. Límite del cuerpo HTTP: 1000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"external","x-ripscloud-idempotency":"required","x-ripscloud-pat-scope":"send","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"creditNoteId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":true,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReconcileHealthDocumentInput"},"examples":{"knownProviderId":{"summary":"Conciliar con el UUID ya conocido del proveedor","value":{"providerDocumentId":"11111111-1111-4111-8111-111111111111"}}}}}},"responses":{"200":{"description":"Emisión conciliada.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditNote"}}}},"400":{"description":"Rechazo: invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, invalid_request, server_owned_field, invalid_query, invalid_path.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_json":{"summary":"El cuerpo no es JSON válido.","value":{"error":{"code":"invalid_json","message":"El cuerpo no es JSON válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_key":{"summary":"El cuerpo repite una clave JSON.","value":{"error":{"code":"duplicate_key","message":"El cuerpo repite una clave JSON."},"requestId":"11111111-1111-4111-8111-111111111111"}},"json_syntax":{"summary":"El JSON tiene un error de sintaxis.","value":{"error":{"code":"json_syntax","message":"El JSON tiene un error de sintaxis."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, reconciliation_not_applicable, invoice_provider_not_configured, authorization_changed.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"reconciliation_not_applicable":{"summary":"Solo un resultado incierto se puede conciliar.","value":{"error":{"code":"reconciliation_not_applicable","message":"Solo un resultado incierto se puede conciliar."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"422":{"description":"Rechazo: reconciliation_inconclusive.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"reconciliation_inconclusive":{"summary":"La evidencia no resuelve el resultado. El estado sigue incierto.","value":{"error":{"code":"reconciliation_inconclusive","message":"La evidencia no resuelve el resultado. El estado sigue incierto."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"502":{"description":"Rechazo: invoice_provider_unavailable.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invoice_provider_unavailable":{"summary":"PahFacturar no respondió. Intente de nuevo.","value":{"error":{"code":"invoice_provider_unavailable","message":"PahFacturar no respondió. Intente de nuevo."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/credit-notes/{creditNoteId}/artifacts/{artifact}":{"get":{"operationId":"creditNotes.downloadArtifact","tags":["Notas crédito"],"summary":"Descargar el XML o PDF de la nota","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso send y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"external","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"send","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"creditNoteId","in":"path"},{"schema":{"type":"string","enum":["pdf","xml","attached"]},"required":true,"name":"artifact","in":"path"}],"responses":{"200":{"description":"Artefacto de la nota aceptada.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found, document_not_available.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}},"document_not_available":{"summary":"El documento solicitado no está disponible.","value":{"error":{"code":"document_not_available","message":"El documento solicitado no está disponible."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: authorization_changed, artifact_context_unverified, invoice_provider_not_configured.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"authorization_changed":{"summary":"Los permisos cambiaron durante la operación. No se realizó ningún efecto externo.","value":{"error":{"code":"authorization_changed","message":"Los permisos cambiaron durante la operación. No se realizó ningún efecto externo."},"requestId":"11111111-1111-4111-8111-111111111111"}},"artifact_context_unverified":{"summary":"El artefacto no corresponde al documento aceptado.","value":{"error":{"code":"artifact_context_unverified","message":"El artefacto no corresponde al documento aceptado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invoice_provider_not_configured":{"summary":"Configure el token, el equipo y la empresa de PahFacturar.","value":{"error":{"code":"invoice_provider_not_configured","message":"Configure el token, el equipo y la empresa de PahFacturar."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"502":{"description":"Rechazo: artifact_download_failed.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"artifact_download_failed":{"summary":"No fue posible descargar el artefacto del proveedor.","value":{"error":{"code":"artifact_download_failed","message":"No fue posible descargar el artefacto del proveedor."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/credit-notes/{creditNoteId}/email":{"post":{"operationId":"creditNotes.sendEmail","tags":["Notas crédito"],"summary":"Enviar la nota por correo","description":"El correo se reclama de forma atómica antes del envío. La misma clave y contenido devuelve el resultado confirmado. Si SMTP falla, demora o se pierde la respuesta, email_outcome_unknown bloquea el reenvío automático con esa clave. Verifique la entrega antes de usar una clave nueva para evitar duplicados. Requiere una membresía activa en el espacio de la ruta. Requiere Idempotency-Key. PAT: requiere el permiso send y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"external","x-ripscloud-idempotency":"required","x-ripscloud-pat-scope":"send","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"creditNoteId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":true,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Correo enviado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailResult"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found, document_not_available.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}},"document_not_available":{"summary":"El documento solicitado no está disponible.","value":{"error":{"code":"document_not_available","message":"El documento solicitado no está disponible."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: authorization_changed, idempotency_key_reused, idempotency_in_progress, email_disabled, email_outcome_unknown, artifact_context_unverified.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"authorization_changed":{"summary":"Los permisos cambiaron durante la operación. No se realizó ningún efecto externo.","value":{"error":{"code":"authorization_changed","message":"Los permisos cambiaron durante la operación. No se realizó ningún efecto externo."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: email_attachment_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"email_attachment_too_large":{"summary":"El adjunto supera el límite de correo.","value":{"error":{"code":"email_attachment_too_large","message":"El adjunto supera el límite de correo."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"422":{"description":"Rechazo: recipient_email_missing.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"recipient_email_missing":{"summary":"El cliente no tiene correo registrado.","value":{"error":{"code":"recipient_email_missing","message":"El cliente no tiene correo registrado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"502":{"description":"Rechazo: artifact_download_failed.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"artifact_download_failed":{"summary":"No fue posible descargar el artefacto del proveedor.","value":{"error":{"code":"artifact_download_failed","message":"No fue posible descargar el artefacto del proveedor."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"503":{"description":"Rechazo: email_not_configured.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"email_not_configured":{"summary":"El correo saliente no está configurado.","value":{"error":{"code":"email_not_configured","message":"El correo saliente no está configurado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/credit-notes/{creditNoteId}/rips-package":{"post":{"operationId":"creditNotes.prepareRipsPackage","tags":["Notas crédito"],"summary":"Preparar el RIPS de la nota crédito","description":"Usa la nota aceptada como fuente (nc_parcial o nc_total). El paquete referencia la nota en el sistema de facturación y no guarda el XML. Devuelve el borrador vinculado o crea uno. No envía al Ministerio. Requiere una membresía activa en el espacio de la ruta. Acepta Idempotency-Key. PAT: requiere el permiso send y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"external","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":"send","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"creditNoteId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Paquete vinculado existente.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"ETag":{"$ref":"#/components/headers/ResourceRevision"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RipsPackage"}}}},"201":{"description":"Paquete creado desde la nota.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"ETag":{"$ref":"#/components/headers/ResourceRevision"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RipsPackage"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found, document_not_available.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}},"document_not_available":{"summary":"El documento solicitado no está disponible.","value":{"error":{"code":"document_not_available","message":"El documento solicitado no está disponible."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: authorization_changed, idempotency_key_reused, idempotency_in_progress, artifact_context_unverified.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"authorization_changed":{"summary":"Los permisos cambiaron durante la operación. No se realizó ningún efecto externo.","value":{"error":{"code":"authorization_changed","message":"Los permisos cambiaron durante la operación. No se realizó ningún efecto externo."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"422":{"description":"Rechazo: source_invoice_not_accepted, source_rips_missing.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"source_invoice_not_accepted":{"summary":"La factura de origen no tiene CUFE aceptado.","value":{"error":{"code":"source_invoice_not_accepted","message":"La factura de origen no tiene CUFE aceptado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"source_rips_missing":{"summary":"La factura de origen no tiene RIPS aceptado o guardado.","value":{"error":{"code":"source_rips_missing","message":"La factura de origen no tiene RIPS aceptado o guardado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"502":{"description":"Rechazo: artifact_download_failed.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"artifact_download_failed":{"summary":"No fue posible descargar el artefacto del proveedor.","value":{"error":{"code":"artifact_download_failed","message":"No fue posible descargar el artefacto del proveedor."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/debit-notes":{"get":{"operationId":"debitNotes.list","tags":["Notas débito"],"summary":"Listar notas débito de salud","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":100000,"description":"Página inicial 1 (valor predeterminado).","example":1},"required":false,"description":"Página inicial 1 (valor predeterminado).","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":500,"description":"Registros por página: 100 por defecto, máximo 500.","example":100},"required":false,"description":"Registros por página: 100 por defecto, máximo 500.","name":"pageSize","in":"query"},{"schema":{"type":"string","enum":["asc","desc"]},"required":false,"name":"sortDirection","in":"query"},{"schema":{"type":"string","maxLength":128},"required":false,"name":"clientName","in":"query"},{"schema":{"type":"string","maxLength":40},"required":false,"name":"status","in":"query"},{"schema":{"type":"string","maxLength":40,"description":"Fecha/hora ISO 8601 inclusiva; enviar un valor UTC válido.","example":"2026-09-01T00:00:00.000Z"},"required":false,"description":"Fecha/hora ISO 8601 inclusiva; enviar un valor UTC válido.","name":"createdFrom","in":"query"},{"schema":{"type":"string","maxLength":40,"description":"Fecha/hora ISO 8601 inclusiva; enviar un valor UTC válido.","example":"2026-09-30T23:59:59.999Z"},"required":false,"description":"Fecha/hora ISO 8601 inclusiva; enviar un valor UTC válido.","name":"createdTo","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"includeArchived","in":"query"},{"schema":{"type":"string","enum":["debitNoteNumber","originalInvoiceNumber","clientName","status","createdAt","updatedAt","totalAmount"]},"required":false,"name":"sortBy","in":"query"},{"schema":{"type":"string","maxLength":60},"required":false,"name":"debitNoteNumber","in":"query"},{"schema":{"type":"string","maxLength":60},"required":false,"name":"originalInvoiceNumber","in":"query"}],"responses":{"200":{"description":"Página de notas.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebitNotePage"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}},"post":{"operationId":"debitNotes.emit","tags":["Notas débito"],"summary":"Emitir una nota débito de salud por PahFacturar","description":"Deriva cliente, referencia y campos de salud de la factura aceptada. Exige RIPS adicional explícito, pacientes de la factura y total positivo igual a los servicios adicionales. No aplica un límite de saldo de crédito. Registra la intención antes del efecto y bloquea duplicados o un resultado incierto. Requiere una membresía activa en el espacio de la ruta. Requiere Idempotency-Key. PAT: requiere el permiso send y acceso al espacio de la ruta, cuando exista. Límite del cuerpo HTTP: 26000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"external","x-ripscloud-idempotency":"required","x-ripscloud-pat-scope":"send","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":true,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmitDebitNoteInput"},"examples":{"supplementalServices":{"summary":"Nota débito con servicios adicionales","description":"Datos sintéticos. Use la factura y la resolución devueltas por debit-note-context; capture los servicios adicionales. El ejemplo no acredita autorización ni aceptación DIAN.","value":{"invoiceId":"invoice-demo-001","debitNoteResolutionId":"debit-resolution-demo-001","discrepancyResponseCode":3,"discrepancyResponseDescription":"Servicio adicional del mismo paciente (ejemplo sintético)","debitNotePayload":{"debit_note_lines":[{"description":"Consulta adicional de ejemplo","code":"890201","invoiced_quantity":"1","price_amount":"100000.00","line_extension_amount":"100000.00"}],"legal_monetary_totals":{"line_extension_amount":"100000.00","tax_exclusive_amount":"100000.00","tax_inclusive_amount":"100000.00","payable_amount":"100000.00"}},"rips":{"numDocumentoIdObligado":"900123456","numFactura":"SETP990000001","tipoNota":"ND","numNota":null,"usuarios":[{"tipoDocumentoIdentificacion":"CC","numDocumentoIdentificacion":"1000000002","tipoUsuario":"01","fechaNacimiento":"1990-01-01","codSexo":"F","codPaisResidencia":"170","codPaisOrigen":"170","codMunicipioResidencia":"11001","codZonaTerritorialResidencia":"01","incapacidad":"NO","consecutivo":1,"servicios":{"consultas":[{"codPrestador":"110010000101","fechaInicioAtencion":"2026-09-02 10:00","numAutorizacion":null,"codConsulta":"890201","modalidadGrupoServicioTecSal":"01","grupoServicios":"01","codServicio":325,"finalidadTecnologiaSalud":"44","causaMotivoAtencion":"38","codDiagnosticoPrincipal":"Z000","codDiagnosticoRelacionado1":null,"codDiagnosticoRelacionado2":null,"codDiagnosticoRelacionado3":null,"tipoDiagnosticoPrincipal":"01","tipoDocumentoIdentificacion":"CC","numDocumentoIdentificacion":"1000000001","vrServicio":100000,"conceptoRecaudo":"05","valorPagoModerador":0,"numFEVPagoModerador":null,"consecutivo":1}]}}]}}}}}}},"responses":{"201":{"description":"Documento aceptado o con rechazo terminal registrado. El CUDE del ejemplo es sintético.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebitNote"},"example":{"id":"debit-note-demo-001","invoiceId":"invoice-demo-001","originalInvoiceNumber":"SETP990000001","clientId":"payer-demo-001","clientName":"Entidad pagadora de ejemplo","totalAmount":100000,"status":"Accepted","statusMessage":"Ejemplo sintético de nota aceptada","assignedDebitNoteNumber":"ND990000001","cude":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","discrepancyResponseCode":3,"discrepancyResponseDescription":"Servicio adicional del mismo paciente (ejemplo sintético)","ripsPackageKind":"nd","isActive":true,"createdAt":"2026-09-02T15:00:00.000Z","updatedAt":"2026-09-02T15:00:01.000Z","originalInvoiceCufe":"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb","dianStatusCode":"00","dianStatusDescription":"Procesado correctamente (ejemplo)","submittedByUserId":"user-demo-001","debitNotePayloadJson":"{\"debit_note_lines\":[{\"description\":\"Consulta adicional de ejemplo\",\"code\":\"890201\",\"invoiced_quantity\":\"1\",\"price_amount\":\"100000.00\",\"line_extension_amount\":\"100000.00\"}],\"legal_monetary_totals\":{\"line_extension_amount\":\"100000.00\",\"tax_exclusive_amount\":\"100000.00\",\"tax_inclusive_amount\":\"100000.00\",\"payable_amount\":\"100000.00\"}}","workingRipsJson":"{\"numDocumentoIdObligado\":\"900123456\",\"numFactura\":\"SETP990000001\",\"tipoNota\":\"ND\",\"numNota\":\"ND990000001\",\"usuarios\":[{\"tipoDocumentoIdentificacion\":\"CC\",\"numDocumentoIdentificacion\":\"1000000002\",\"tipoUsuario\":\"01\",\"fechaNacimiento\":\"1990-01-01\",\"codSexo\":\"F\",\"codPaisResidencia\":\"170\",\"codPaisOrigen\":\"170\",\"codMunicipioResidencia\":\"11001\",\"codZonaTerritorialResidencia\":\"01\",\"incapacidad\":\"NO\",\"consecutivo\":1,\"servicios\":{\"consultas\":[{\"codPrestador\":\"110010000101\",\"fechaInicioAtencion\":\"2026-09-02 10:00\",\"numAutorizacion\":null,\"codConsulta\":\"890201\",\"modalidadGrupoServicioTecSal\":\"01\",\"grupoServicios\":\"01\",\"codServicio\":325,\"finalidadTecnologiaSalud\":\"44\",\"causaMotivoAtencion\":\"38\",\"codDiagnosticoPrincipal\":\"Z000\",\"codDiagnosticoRelacionado1\":null,\"codDiagnosticoRelacionado2\":null,\"codDiagnosticoRelacionado3\":null,\"tipoDiagnosticoPrincipal\":\"01\",\"tipoDocumentoIdentificacion\":\"CC\",\"numDocumentoIdentificacion\":\"1000000001\",\"vrServicio\":100000,\"conceptoRecaudo\":\"05\",\"valorPagoModerador\":0,\"numFEVPagoModerador\":null,\"consecutivo\":1}]}}]}","dispatchHistory":[{"attemptedAt":"2026-09-02T15:00:00.000Z","succeeded":true,"errorMessage":null,"requestPayload":"{\"debit_note_lines\":[{\"description\":\"Consulta adicional de ejemplo\",\"code\":\"890201\",\"invoiced_quantity\":\"1\",\"price_amount\":\"100000.00\",\"line_extension_amount\":\"100000.00\"}],\"legal_monetary_totals\":{\"line_extension_amount\":\"100000.00\",\"tax_exclusive_amount\":\"100000.00\",\"tax_inclusive_amount\":\"100000.00\",\"payable_amount\":\"100000.00\"}}","responsePayload":"{\"status\":\"accepted\",\"cude\":\"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"}","source":"pahfacturar"}],"ripsPackages":[],"documentAvailability":[{"documentType":"attached","isSupported":true,"canDownload":true},{"documentType":"pdf","isSupported":false,"canDownload":false}]}}}},"202":{"description":"Emisión registrada con resultado incierto o en curso.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebitNote"},"example":{"id":"debit-note-demo-001","invoiceId":"invoice-demo-001","originalInvoiceNumber":"SETP990000001","clientId":"payer-demo-001","clientName":"Entidad pagadora de ejemplo","totalAmount":100000,"status":"Unknown","statusMessage":"No se conoce el resultado de DIAN","assignedDebitNoteNumber":"ND990000001","cude":null,"discrepancyResponseCode":3,"discrepancyResponseDescription":"Servicio adicional del mismo paciente (ejemplo sintético)","ripsPackageKind":"nd","isActive":true,"createdAt":"2026-09-02T15:00:00.000Z","updatedAt":"2026-09-02T15:00:01.000Z","originalInvoiceCufe":"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb","dianStatusCode":null,"dianStatusDescription":null,"submittedByUserId":"user-demo-001","debitNotePayloadJson":"{\"debit_note_lines\":[{\"description\":\"Consulta adicional de ejemplo\",\"code\":\"890201\",\"invoiced_quantity\":\"1\",\"price_amount\":\"100000.00\",\"line_extension_amount\":\"100000.00\"}],\"legal_monetary_totals\":{\"line_extension_amount\":\"100000.00\",\"tax_exclusive_amount\":\"100000.00\",\"tax_inclusive_amount\":\"100000.00\",\"payable_amount\":\"100000.00\"}}","workingRipsJson":"{\"numDocumentoIdObligado\":\"900123456\",\"numFactura\":\"SETP990000001\",\"tipoNota\":\"ND\",\"numNota\":\"ND990000001\",\"usuarios\":[{\"tipoDocumentoIdentificacion\":\"CC\",\"numDocumentoIdentificacion\":\"1000000002\",\"tipoUsuario\":\"01\",\"fechaNacimiento\":\"1990-01-01\",\"codSexo\":\"F\",\"codPaisResidencia\":\"170\",\"codPaisOrigen\":\"170\",\"codMunicipioResidencia\":\"11001\",\"codZonaTerritorialResidencia\":\"01\",\"incapacidad\":\"NO\",\"consecutivo\":1,\"servicios\":{\"consultas\":[{\"codPrestador\":\"110010000101\",\"fechaInicioAtencion\":\"2026-09-02 10:00\",\"numAutorizacion\":null,\"codConsulta\":\"890201\",\"modalidadGrupoServicioTecSal\":\"01\",\"grupoServicios\":\"01\",\"codServicio\":325,\"finalidadTecnologiaSalud\":\"44\",\"causaMotivoAtencion\":\"38\",\"codDiagnosticoPrincipal\":\"Z000\",\"codDiagnosticoRelacionado1\":null,\"codDiagnosticoRelacionado2\":null,\"codDiagnosticoRelacionado3\":null,\"tipoDiagnosticoPrincipal\":\"01\",\"tipoDocumentoIdentificacion\":\"CC\",\"numDocumentoIdentificacion\":\"1000000001\",\"vrServicio\":100000,\"conceptoRecaudo\":\"05\",\"valorPagoModerador\":0,\"numFEVPagoModerador\":null,\"consecutivo\":1}]}}]}","dispatchHistory":[{"attemptedAt":"2026-09-02T15:00:00.000Z","succeeded":true,"errorMessage":null,"requestPayload":"{\"debit_note_lines\":[{\"description\":\"Consulta adicional de ejemplo\",\"code\":\"890201\",\"invoiced_quantity\":\"1\",\"price_amount\":\"100000.00\",\"line_extension_amount\":\"100000.00\"}],\"legal_monetary_totals\":{\"line_extension_amount\":\"100000.00\",\"tax_exclusive_amount\":\"100000.00\",\"tax_inclusive_amount\":\"100000.00\",\"payable_amount\":\"100000.00\"}}","responsePayload":"{\"status\":\"accepted\",\"cude\":\"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"}","source":"pahfacturar"}],"ripsPackages":[],"documentAvailability":[]}}}},"400":{"description":"Rechazo: invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, invalid_request, server_owned_field, invalid_query, invalid_path.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_json":{"summary":"El cuerpo no es JSON válido.","value":{"error":{"code":"invalid_json","message":"El cuerpo no es JSON válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_key":{"summary":"El cuerpo repite una clave JSON.","value":{"error":{"code":"duplicate_key","message":"El cuerpo repite una clave JSON."},"requestId":"11111111-1111-4111-8111-111111111111"}},"json_syntax":{"summary":"El JSON tiene un error de sintaxis.","value":{"error":{"code":"json_syntax","message":"El JSON tiene un error de sintaxis."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, invoice_provider_not_configured, invoice_provider_company_mismatch, resolution_unavailable, provider_dispatch_in_progress, provider_outcome_unknown, health_document_not_emittable, authorization_changed.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invoice_provider_not_configured":{"summary":"Configure el token, el equipo y la empresa de PahFacturar.","value":{"error":{"code":"invoice_provider_not_configured","message":"Configure el token, el equipo y la empresa de PahFacturar."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"422":{"description":"Rechazo: health_document_invalid, source_invoice_not_accepted, source_customer_missing, source_rips_missing, debit_note_rips_required, debit_note_rips_invalid, debit_note_patient_mismatch.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"health_document_invalid":{"summary":"El contenido del documento de salud no cumple las reglas de emisión.","value":{"error":{"code":"health_document_invalid","message":"El contenido del documento de salud no cumple las reglas de emisión."},"requestId":"11111111-1111-4111-8111-111111111111"}},"source_invoice_not_accepted":{"summary":"La factura de origen no tiene CUFE aceptado.","value":{"error":{"code":"source_invoice_not_accepted","message":"La factura de origen no tiene CUFE aceptado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"source_customer_missing":{"summary":"La factura de origen no identifica al cliente.","value":{"error":{"code":"source_customer_missing","message":"La factura de origen no identifica al cliente."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"502":{"description":"Rechazo: invoice_provider_unavailable.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invoice_provider_unavailable":{"summary":"PahFacturar no respondió. Intente de nuevo.","value":{"error":{"code":"invoice_provider_unavailable","message":"PahFacturar no respondió. Intente de nuevo."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"503":{"description":"Rechazo: upstream_configuration_invalid.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"upstream_configuration_invalid":{"summary":"La conexión con el servicio externo no está configurada para este entorno.","value":{"error":{"code":"upstream_configuration_invalid","message":"La conexión con el servicio externo no está configurada para este entorno."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/health-invoices/{invoiceId}/debit-note-context":{"get":{"operationId":"debitNotes.getContext","tags":["Notas débito"],"summary":"Contexto para emitir una nota débito","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"invoiceId","in":"path"}],"responses":{"200":{"description":"Factura, pacientes de referencia y resoluciones vigentes, sin saldo de crédito.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebitNoteContext"},"example":{"invoice":{"id":"invoice-demo-001","invoiceNumber":"SETP990000001","cufe":"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb","issueDate":"2026-09-01T15:00:00.000Z","totalAmount":100000,"clientName":"Entidad pagadora de ejemplo","clientId":"payer-demo-001","locationId":null},"patients":[{"consecutivo":1,"tipoDocumentoIdentificacion":"CC","numDocumentoIdentificacion":"1000000002","patientName":"Paciente de ejemplo","totalAmount":100000,"services":[{"category":"consultas","consecutivo":1,"description":"Consulta original de referencia","amount":100000,"serviceDate":"2026-09-01 10:00"}]}],"rips":{"numDocumentoIdObligado":"900123456","numFactura":"SETP990000001","tipoNota":"ND","numNota":null,"usuarios":[{"tipoDocumentoIdentificacion":"CC","numDocumentoIdentificacion":"1000000002","tipoUsuario":"01","fechaNacimiento":"1990-01-01","codSexo":"F","codPaisResidencia":"170","codPaisOrigen":"170","codMunicipioResidencia":"11001","codZonaTerritorialResidencia":"01","incapacidad":"NO","consecutivo":1,"servicios":{"consultas":[],"procedimientos":[],"urgencias":[],"hospitalizacion":[],"recienNacidos":[],"medicamentos":[],"otrosServicios":[]}}]},"availableResolutions":[{"id":"debit-resolution-demo-001","resolutionNumber":"18760000001","prefix":"ND","nextNumber":990000001,"fromNumber":990000001,"toNumber":990010000,"validFrom":"2026-01-01","validTo":"2027-12-31","environment":2,"hasTechnicalKey":true,"isActive":true,"createdAt":"2026-01-01T00:00:00.000Z","updatedAt":"2026-01-01T00:00:00.000Z"}],"canCreateDebitNote":true,"validationMessage":null}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/debit-notes/{debitNoteId}":{"get":{"operationId":"debitNotes.get","tags":["Notas débito"],"summary":"Consultar una nota débito","description":"Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso read y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"read","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"read","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"debitNoteId","in":"path"}],"responses":{"200":{"description":"Nota con su historial.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebitNote"},"example":{"id":"debit-note-demo-001","invoiceId":"invoice-demo-001","originalInvoiceNumber":"SETP990000001","clientId":"payer-demo-001","clientName":"Entidad pagadora de ejemplo","totalAmount":100000,"status":"Accepted","statusMessage":"Ejemplo sintético de nota aceptada","assignedDebitNoteNumber":"ND990000001","cude":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","discrepancyResponseCode":3,"discrepancyResponseDescription":"Servicio adicional del mismo paciente (ejemplo sintético)","ripsPackageKind":"nd","isActive":true,"createdAt":"2026-09-02T15:00:00.000Z","updatedAt":"2026-09-02T15:00:01.000Z","originalInvoiceCufe":"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb","dianStatusCode":"00","dianStatusDescription":"Procesado correctamente (ejemplo)","submittedByUserId":"user-demo-001","debitNotePayloadJson":"{\"debit_note_lines\":[{\"description\":\"Consulta adicional de ejemplo\",\"code\":\"890201\",\"invoiced_quantity\":\"1\",\"price_amount\":\"100000.00\",\"line_extension_amount\":\"100000.00\"}],\"legal_monetary_totals\":{\"line_extension_amount\":\"100000.00\",\"tax_exclusive_amount\":\"100000.00\",\"tax_inclusive_amount\":\"100000.00\",\"payable_amount\":\"100000.00\"}}","workingRipsJson":"{\"numDocumentoIdObligado\":\"900123456\",\"numFactura\":\"SETP990000001\",\"tipoNota\":\"ND\",\"numNota\":\"ND990000001\",\"usuarios\":[{\"tipoDocumentoIdentificacion\":\"CC\",\"numDocumentoIdentificacion\":\"1000000002\",\"tipoUsuario\":\"01\",\"fechaNacimiento\":\"1990-01-01\",\"codSexo\":\"F\",\"codPaisResidencia\":\"170\",\"codPaisOrigen\":\"170\",\"codMunicipioResidencia\":\"11001\",\"codZonaTerritorialResidencia\":\"01\",\"incapacidad\":\"NO\",\"consecutivo\":1,\"servicios\":{\"consultas\":[{\"codPrestador\":\"110010000101\",\"fechaInicioAtencion\":\"2026-09-02 10:00\",\"numAutorizacion\":null,\"codConsulta\":\"890201\",\"modalidadGrupoServicioTecSal\":\"01\",\"grupoServicios\":\"01\",\"codServicio\":325,\"finalidadTecnologiaSalud\":\"44\",\"causaMotivoAtencion\":\"38\",\"codDiagnosticoPrincipal\":\"Z000\",\"codDiagnosticoRelacionado1\":null,\"codDiagnosticoRelacionado2\":null,\"codDiagnosticoRelacionado3\":null,\"tipoDiagnosticoPrincipal\":\"01\",\"tipoDocumentoIdentificacion\":\"CC\",\"numDocumentoIdentificacion\":\"1000000001\",\"vrServicio\":100000,\"conceptoRecaudo\":\"05\",\"valorPagoModerador\":0,\"numFEVPagoModerador\":null,\"consecutivo\":1}]}}]}","dispatchHistory":[{"attemptedAt":"2026-09-02T15:00:00.000Z","succeeded":true,"errorMessage":null,"requestPayload":"{\"debit_note_lines\":[{\"description\":\"Consulta adicional de ejemplo\",\"code\":\"890201\",\"invoiced_quantity\":\"1\",\"price_amount\":\"100000.00\",\"line_extension_amount\":\"100000.00\"}],\"legal_monetary_totals\":{\"line_extension_amount\":\"100000.00\",\"tax_exclusive_amount\":\"100000.00\",\"tax_inclusive_amount\":\"100000.00\",\"payable_amount\":\"100000.00\"}}","responsePayload":"{\"status\":\"accepted\",\"cude\":\"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"}","source":"pahfacturar"}],"ripsPackages":[],"documentAvailability":[{"documentType":"attached","isSupported":true,"canDownload":true},{"documentType":"pdf","isSupported":false,"canDownload":false}]}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/debit-notes/{debitNoteId}/emissions":{"post":{"operationId":"debitNotes.retryEmission","tags":["Notas débito"],"summary":"Reintentar la emisión de la nota","description":"Solo para un resultado que permite reintento; un resultado Unknown requiere conciliación. Conserva los servicios adicionales y la referencia originales. No copia servicios de la factura. Requiere una membresía activa en el espacio de la ruta. Requiere Idempotency-Key. PAT: requiere el permiso send y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"external","x-ripscloud-idempotency":"required","x-ripscloud-pat-scope":"send","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"debitNoteId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":true,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Resultado terminal registrado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebitNote"}}}},"202":{"description":"Resultado incierto o en curso.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebitNote"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, invoice_provider_not_configured, invoice_provider_company_mismatch, resolution_unavailable, provider_dispatch_in_progress, provider_outcome_unknown, health_document_not_emittable, authorization_changed, resource_archived.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invoice_provider_not_configured":{"summary":"Configure el token, el equipo y la empresa de PahFacturar.","value":{"error":{"code":"invoice_provider_not_configured","message":"Configure el token, el equipo y la empresa de PahFacturar."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"422":{"description":"Rechazo: health_document_invalid, debit_note_rips_required, debit_note_rips_invalid, debit_note_patient_mismatch.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"health_document_invalid":{"summary":"El contenido del documento de salud no cumple las reglas de emisión.","value":{"error":{"code":"health_document_invalid","message":"El contenido del documento de salud no cumple las reglas de emisión."},"requestId":"11111111-1111-4111-8111-111111111111"}},"debit_note_rips_required":{"summary":"La nota débito requiere los RIPS de los servicios adicionales.","value":{"error":{"code":"debit_note_rips_required","message":"La nota débito requiere los RIPS de los servicios adicionales."},"requestId":"11111111-1111-4111-8111-111111111111"}},"debit_note_rips_invalid":{"summary":"Los RIPS adicionales no cumplen las reglas de la nota débito.","value":{"error":{"code":"debit_note_rips_invalid","message":"Los RIPS adicionales no cumplen las reglas de la nota débito."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"502":{"description":"Rechazo: invoice_provider_unavailable.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invoice_provider_unavailable":{"summary":"PahFacturar no respondió. Intente de nuevo.","value":{"error":{"code":"invoice_provider_unavailable","message":"PahFacturar no respondió. Intente de nuevo."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"503":{"description":"Rechazo: upstream_configuration_invalid.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"upstream_configuration_invalid":{"summary":"La conexión con el servicio externo no está configurada para este entorno.","value":{"error":{"code":"upstream_configuration_invalid","message":"La conexión con el servicio externo no está configurada para este entorno."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/debit-notes/{debitNoteId}/reconciliations":{"post":{"operationId":"debitNotes.reconcile","tags":["Notas débito"],"summary":"Conciliar una emisión incierta","description":"Comprueba un UUID conocido de PahFacturar contra la intención guardada. No busca un UUID perdido ni emite otra nota. Si no conoce el UUID, conserve Unknown y solicite recuperación. Requiere una membresía activa en el espacio de la ruta. Requiere Idempotency-Key. PAT: requiere el permiso send y acceso al espacio de la ruta, cuando exista. Límite del cuerpo HTTP: 1000000 bytes, antes de interpretar el contenido.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"external","x-ripscloud-idempotency":"required","x-ripscloud-pat-scope":"send","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"debitNoteId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":true,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReconcileHealthDocumentInput"},"examples":{"knownProviderId":{"summary":"Conciliar con el UUID ya conocido del proveedor","value":{"providerDocumentId":"11111111-1111-4111-8111-111111111111"}}}}}},"responses":{"200":{"description":"Emisión conciliada.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebitNote"}}}},"400":{"description":"Rechazo: invalid_json, duplicate_key, json_syntax, json_depth, json_type, numeric_value_loss, numeric_overflow, conflicting_alias, invalid_request, server_owned_field, invalid_query, invalid_path.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_json":{"summary":"El cuerpo no es JSON válido.","value":{"error":{"code":"invalid_json","message":"El cuerpo no es JSON válido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"duplicate_key":{"summary":"El cuerpo repite una clave JSON.","value":{"error":{"code":"duplicate_key","message":"El cuerpo repite una clave JSON."},"requestId":"11111111-1111-4111-8111-111111111111"}},"json_syntax":{"summary":"El JSON tiene un error de sintaxis.","value":{"error":{"code":"json_syntax","message":"El JSON tiene un error de sintaxis."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: idempotency_key_reused, idempotency_in_progress, reconciliation_not_applicable, invoice_provider_not_configured, authorization_changed.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}},"reconciliation_not_applicable":{"summary":"Solo un resultado incierto se puede conciliar.","value":{"error":{"code":"reconciliation_not_applicable","message":"Solo un resultado incierto se puede conciliar."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: request_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"request_too_large":{"summary":"El cuerpo supera el tamaño permitido.","value":{"error":{"code":"request_too_large","message":"El cuerpo supera el tamaño permitido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"415":{"description":"Rechazo: unsupported_media_type.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unsupported_media_type":{"summary":"El tipo de contenido no es compatible con esta operación.","value":{"error":{"code":"unsupported_media_type","message":"El tipo de contenido no es compatible con esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"422":{"description":"Rechazo: reconciliation_inconclusive.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"reconciliation_inconclusive":{"summary":"La evidencia no resuelve el resultado. El estado sigue incierto.","value":{"error":{"code":"reconciliation_inconclusive","message":"La evidencia no resuelve el resultado. El estado sigue incierto."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"502":{"description":"Rechazo: invoice_provider_unavailable.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invoice_provider_unavailable":{"summary":"PahFacturar no respondió. Intente de nuevo.","value":{"error":{"code":"invoice_provider_unavailable","message":"PahFacturar no respondió. Intente de nuevo."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/debit-notes/{debitNoteId}/artifacts/{artifact}":{"get":{"operationId":"debitNotes.downloadArtifact","tags":["Notas débito"],"summary":"Descargar XML firmado o AttachedDocument de la nota","description":"Use xml o attached. PahFacturar no publica un PDF independiente para notas; artifact=pdf devuelve document_not_available. Requiere permiso PAT send por el acceso al proveedor. Requiere una membresía activa en el espacio de la ruta. PAT: requiere el permiso send y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"external","x-ripscloud-idempotency":"none","x-ripscloud-pat-scope":"send","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"debitNoteId","in":"path"},{"schema":{"type":"string","enum":["pdf","xml","attached"]},"required":true,"name":"artifact","in":"path"}],"responses":{"200":{"description":"Artefacto de la nota aceptada.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found, document_not_available.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}},"document_not_available":{"summary":"El documento solicitado no está disponible.","value":{"error":{"code":"document_not_available","message":"El documento solicitado no está disponible."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: authorization_changed, artifact_context_unverified, invoice_provider_not_configured.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"authorization_changed":{"summary":"Los permisos cambiaron durante la operación. No se realizó ningún efecto externo.","value":{"error":{"code":"authorization_changed","message":"Los permisos cambiaron durante la operación. No se realizó ningún efecto externo."},"requestId":"11111111-1111-4111-8111-111111111111"}},"artifact_context_unverified":{"summary":"El artefacto no corresponde al documento aceptado.","value":{"error":{"code":"artifact_context_unverified","message":"El artefacto no corresponde al documento aceptado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invoice_provider_not_configured":{"summary":"Configure el token, el equipo y la empresa de PahFacturar.","value":{"error":{"code":"invoice_provider_not_configured","message":"Configure el token, el equipo y la empresa de PahFacturar."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"502":{"description":"Rechazo: artifact_download_failed.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"artifact_download_failed":{"summary":"No fue posible descargar el artefacto del proveedor.","value":{"error":{"code":"artifact_download_failed","message":"No fue posible descargar el artefacto del proveedor."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/debit-notes/{debitNoteId}/email":{"post":{"operationId":"debitNotes.sendEmail","tags":["Notas débito"],"summary":"Enviar la nota por correo","description":"El correo se reclama de forma atómica antes del envío. La misma clave y contenido devuelve el resultado confirmado. Si SMTP falla, demora o se pierde la respuesta, email_outcome_unknown bloquea el reenvío automático con esa clave. Verifique la entrega antes de usar una clave nueva para evitar duplicados. Requiere una membresía activa en el espacio de la ruta. Requiere Idempotency-Key. PAT: requiere el permiso send y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"external","x-ripscloud-idempotency":"required","x-ripscloud-pat-scope":"send","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"debitNoteId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":true,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Correo enviado.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailResult"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found, document_not_available.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}},"document_not_available":{"summary":"El documento solicitado no está disponible.","value":{"error":{"code":"document_not_available","message":"El documento solicitado no está disponible."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: authorization_changed, idempotency_key_reused, idempotency_in_progress, email_disabled, email_outcome_unknown, artifact_context_unverified.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"authorization_changed":{"summary":"Los permisos cambiaron durante la operación. No se realizó ningún efecto externo.","value":{"error":{"code":"authorization_changed","message":"Los permisos cambiaron durante la operación. No se realizó ningún efecto externo."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"413":{"description":"Rechazo: email_attachment_too_large.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"email_attachment_too_large":{"summary":"El adjunto supera el límite de correo.","value":{"error":{"code":"email_attachment_too_large","message":"El adjunto supera el límite de correo."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"422":{"description":"Rechazo: recipient_email_missing.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"recipient_email_missing":{"summary":"El cliente no tiene correo registrado.","value":{"error":{"code":"recipient_email_missing","message":"El cliente no tiene correo registrado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"502":{"description":"Rechazo: artifact_download_failed.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"artifact_download_failed":{"summary":"No fue posible descargar el artefacto del proveedor.","value":{"error":{"code":"artifact_download_failed","message":"No fue posible descargar el artefacto del proveedor."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"503":{"description":"Rechazo: email_not_configured.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"email_not_configured":{"summary":"El correo saliente no está configurado.","value":{"error":{"code":"email_not_configured","message":"El correo saliente no está configurado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}},"/api/v1/workspaces/{workspaceId}/debit-notes/{debitNoteId}/rips-package":{"post":{"operationId":"debitNotes.prepareRipsPackage","tags":["Notas débito"],"summary":"Preparar el RIPS de la nota débito","description":"Usa la nota débito aceptada y el RIPS adicional guardado para crear un paquete nd. El servidor fija numFactura de la factura original, tipoNota=ND y numNota de la nota emitida. El paquete referencia la nota en el sistema de facturación y no guarda el XML. Devuelve el borrador vinculado o crea uno. No envía al Ministerio. Requiere una membresía activa en el espacio de la ruta. Acepta Idempotency-Key. PAT: requiere el permiso send y acceso al espacio de la ruta, cuando exista.","security":[{"BearerAuth":[]}],"x-ripscloud-auth":"member","x-ripscloud-effect":"external","x-ripscloud-idempotency":"optional","x-ripscloud-pat-scope":"send","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"workspaceId","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9._:-]+$","description":"Identificador opaco."},"required":true,"description":"Identificador opaco.","name":"debitNoteId","in":"path"},{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","example":"01J9Z5V4V8M2Q7K3B6N1X0P4R2"},"required":false,"description":"Clave única por intención. Se comprueba en el ámbito de la operación y espacio, y el digest incluye actor, parámetros y cuerpo. Reintente con la misma clave y el mismo contenido; con rawBody conserve los bytes exactos. Contenido distinto produce idempotency_key_reused. No reutilice claves entre intenciones ni suponga que caducan.","name":"idempotency-key","in":"header"}],"responses":{"200":{"description":"Paquete vinculado existente.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"ETag":{"$ref":"#/components/headers/ResourceRevision"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RipsPackage"}}}},"201":{"description":"Paquete creado desde la nota.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"ETag":{"$ref":"#/components/headers/ResourceRevision"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RipsPackage"}}}},"400":{"description":"Rechazo: invalid_query, invalid_path, invalid_request.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"invalid_query":{"summary":"Los parámetros de consulta no cumplen el contrato.","value":{"error":{"code":"invalid_query","message":"Los parámetros de consulta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_path":{"summary":"Los parámetros de la ruta no cumplen el contrato.","value":{"error":{"code":"invalid_path","message":"Los parámetros de la ruta no cumplen el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}},"invalid_request":{"summary":"La solicitud no cumple el contrato.","value":{"error":{"code":"invalid_request","message":"La solicitud no cumple el contrato."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"401":{"description":"Rechazo: unauthenticated.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"},"WWW-Authenticate":{"$ref":"#/components/headers/BearerChallenge"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"unauthenticated":{"summary":"Inicie sesión con un token de usuario válido.","value":{"error":{"code":"unauthenticated","message":"Inicie sesión con un token de usuario válido."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"403":{"description":"Rechazo: account_disabled, phone_identity_retired, personal_access_token_scope_required, personal_access_token_workspace_forbidden, personal_access_token_not_allowed, workspace_membership_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"account_disabled":{"summary":"La cuenta está deshabilitada.","value":{"error":{"code":"account_disabled","message":"La cuenta está deshabilitada."},"requestId":"11111111-1111-4111-8111-111111111111"}},"phone_identity_retired":{"summary":"El celular de acceso cambió. Inicie sesión con el celular vigente.","value":{"error":{"code":"phone_identity_retired","message":"El celular de acceso cambió. Inicie sesión con el celular vigente."},"requestId":"11111111-1111-4111-8111-111111111111"}},"personal_access_token_scope_required":{"summary":"El token personal no tiene el permiso requerido por esta operación.","value":{"error":{"code":"personal_access_token_scope_required","message":"El token personal no tiene el permiso requerido por esta operación."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"404":{"description":"Rechazo: workspace_not_found, not_found, document_not_available.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"workspace_not_found":{"summary":"El espacio no existe o está archivado.","value":{"error":{"code":"workspace_not_found","message":"El espacio no existe o está archivado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"not_found":{"summary":"El recurso no existe en este espacio.","value":{"error":{"code":"not_found","message":"El recurso no existe en este espacio."},"requestId":"11111111-1111-4111-8111-111111111111"}},"document_not_available":{"summary":"El documento solicitado no está disponible.","value":{"error":{"code":"document_not_available","message":"El documento solicitado no está disponible."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"409":{"description":"Rechazo: authorization_changed, idempotency_key_reused, idempotency_in_progress, artifact_context_unverified.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"authorization_changed":{"summary":"Los permisos cambiaron durante la operación. No se realizó ningún efecto externo.","value":{"error":{"code":"authorization_changed","message":"Los permisos cambiaron durante la operación. No se realizó ningún efecto externo."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_key_reused":{"summary":"La clave de idempotencia ya se usó con otro contenido.","value":{"error":{"code":"idempotency_key_reused","message":"La clave de idempotencia ya se usó con otro contenido."},"requestId":"11111111-1111-4111-8111-111111111111"}},"idempotency_in_progress":{"summary":"Una solicitud con la misma clave está en curso.","value":{"error":{"code":"idempotency_in_progress","message":"Una solicitud con la misma clave está en curso."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"422":{"description":"Rechazo: source_invoice_not_accepted, source_rips_missing.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"source_invoice_not_accepted":{"summary":"La factura de origen no tiene CUFE aceptado.","value":{"error":{"code":"source_invoice_not_accepted","message":"La factura de origen no tiene CUFE aceptado."},"requestId":"11111111-1111-4111-8111-111111111111"}},"source_rips_missing":{"summary":"La factura de origen no tiene RIPS aceptado o guardado.","value":{"error":{"code":"source_rips_missing","message":"La factura de origen no tiene RIPS aceptado o guardado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"428":{"description":"Rechazo: idempotency_key_required.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"idempotency_key_required":{"summary":"La operación requiere el encabezado Idempotency-Key.","value":{"error":{"code":"idempotency_key_required","message":"La operación requiere el encabezado Idempotency-Key."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"500":{"description":"Rechazo: internal_error.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"internal_error":{"summary":"Error interno. Use el identificador de solicitud para consultar el resultado.","value":{"error":{"code":"internal_error","message":"Error interno. Use el identificador de solicitud para consultar el resultado."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}},"502":{"description":"Rechazo: artifact_download_failed.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"},"X-Correlation-ID":{"$ref":"#/components/headers/CorrelationId"},"X-Operation-ID":{"$ref":"#/components/headers/OperationId"},"Cache-Control":{"$ref":"#/components/headers/NoStore"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"examples":{"artifact_download_failed":{"summary":"No fue posible descargar el artefacto del proveedor.","value":{"error":{"code":"artifact_download_failed","message":"No fue posible descargar el artefacto del proveedor."},"requestId":"11111111-1111-4111-8111-111111111111"}}}}}}}}}},"webhooks":{}}