Intramedial está en beta restringida. Al registrarte o iniciar sesión, debes indicar la contraseña de beta tester que recibiste o solicitar una en preview@intramedial.com. Gracias.
Cargando…
settlement.listMódulo 47
Módulo de la plataforma
Settlement and escrow
Retén dinero contra un mandato de pago de agente hasta confirmar la entrega, con un registro que dice claramente cuándo se movieron los fondos y cuándo no.
settlement.list lee liquidaciones por toda su máquina de estados: borrador, comprobaciones de mandato y financiación, retenida, liberación o reembolso, disputa, caducidad. Cada mutación añade un evento a la transcripción, y la respuesta siempre lleva fundsMoved como un hecho estrictamente validado, nunca una suposición.
Los agentes actúan cuando el plano dice sí, y el registro dice por qué.
Pasa por Intramedial acciones de agentes, hashes de contenido, pruebas de API, DNS, webhooks, llamadas LLM y commits. Obtén un recibo firmado que cualquiera verifica, sin fiarse de nadie.
EstadoEl dinero real necesita dos dependencias vinculadas
Financiar y liberar un importe positivo requieren un Ap2MandateVerifier inyectado y un SettlementProvider que no sea el de solo registro integrado; sin ambos vinculados, fund responde 503 y no puede moverse dinero. El proveedor por defecto incluido solo puede producir entradas de solo registro y valor cero.
Registro
El registro
Qué se registra
state
draft, pending_mandate, pending_funding, held, releasing, refunded, closed, declined, o .
Un booleano estrictamente validado en cada respuesta, incluidas las lecturas; nunca afirmado sin que lo respalde el estado del propio proveedor.
mandateId
El id del mandato AP2 registrado una vez que fund lo verifica.
receipt
Un recibo Merkle montado sobre el evento de transcripción de la liquidación, cuando la acción lo produce.
idempotencyKey
Obligatoria en cada llamada que muta; una repetición con la misma clave y cuerpo devuelve la respuesta en caché, un cuerpo distinto da conflicto.
evidence
Material adjunto a la liquidación, incluidos sus propios recibos, limitado a 16 384 caracteres de contenido.
Mecanismo
Paso a paso
Cómo funciona
Se crea una liquidación
create abre una liquidación en draft con un amountCents, currency y al menos un vínculo a un caso, compromiso o asunto.
La financiación comprueba primero el mandato
fund verifica el mandato AP2 mediante el verificador vinculado antes de pedir siquiera al proveedor de dinero que retenga nada; un mandato denegado deja la liquidación en pending_mandate, sin financiar.
Liberar o reembolsar la hace avanzar
release y refund llaman al proveedor vinculado y registran su fundsMoved informado solo tras validarlo contra el estado que el propio proveedor declara.
Una disputa pausa el resultado
dispute exige un reason declarado y pasa una liquidación retenida o en liberación a disputed; resolverla contra una resolución necesita un caso que este workspace haya adjudicado realmente.
Pruébalo
Demo en vivo
Ejecútalo desde esta página
GET/api/v1/acp/settlement/list
// Sin cuerpo: esto es un GET. Pulsa Ejecutar.
Las llamadas de este módulo cambian estado real o llegan a servicios externos, por lo que la demostración compartida no las ejecuta. Inicia sesión para ejecutarlo en tu propio workspace. Docs de settlement.list
Respuestas
Las llamadas de este módulo cambian estado real o llegan a servicios externos, por lo que la demostración compartida no las ejecuta. Inicia sesión para ejecutarlo en tu propio workspace.
Código
Ejemplo en vivo
Una petición real
Una petición con la forma que acepta la API y una respuesta de ejemplo con la forma que devuelve el módulo.
api.intramedial.com/api/v1/acp/settlement/listGET
GET/api/v1/acp/settlement/listAuthorization: Bearer av_workspace_••••→ 200 { settlements, fundsMoved: false } (list and get always carry the fundsMoved sentinel alongside settlements)
directory.lookup abre un asunto respaldado por depósito solo cuando su liquidación está realmente retenida, no solo creada, así que una llamada no puede comprar su entrada con una promesa sin fondos.
Resolver una disputa por resolución
Una liquidación en disputa se libera a favor del pagador solo frente a una resolución que este workspace haya adjudicado, asignada a un remedio que realmente quite algo al pagador.
Demostrar que el dinero se movió, o no
Un auditor lee la transcripción de una liquidación y ve fundsMoved registrado con honestidad en cada paso, incluido el rechazo de la afirmación de un proveedor cuando no coincidía con su propio estado.
Repetir una petición con seguridad
Un cliente reintenta una llamada release tras un timeout con la misma idempotencyKey; la liquidación no se libera dos veces y la respuesta original vuelve sin cambios.
Cuándo usar otra cosa
Mover dinero sin proveedor vinculado. El proveedor por defecto incluido solo produce entradas de solo registro y valor cero.
Liquidar sin un vínculo registrado. create exige al menos uno de caseId, commitmentId o matterId.
Resolver una disputa por afirmación. Liberar frente a una disputa necesita una resolución que este workspace haya adjudicado realmente, no una acusación de abuso.
Evidencia
Garantías
Qué hace y qué no hace
Un módulo es una afirmación fuerte sobre algo acotado. Confía en él exactamente para lo que es.
Hace
fundsMoved nunca se pone en true solo por la palabra de un proveedor; el estado declarado por el proveedor se valida antes de fiarse del campo.
Financiar una liquidación siempre comprueba el mandato antes de pedir siquiera al proveedor de dinero que retenga nada.
Una clave de idempotencia repetida con un cuerpo de petición distinto se rechaza como conflicto, nunca se aplica dos veces en silencio.
No hace
Que los fondos se movieran en el mundo real sin un proveedor vinculado que no sea de solo registro. El módulo aplica la máquina de estados; no mueve dinero por sí mismo.
Que una disputa se resuelva con justicia. El módulo exige una resolución de los casos adjudicados de este workspace; no juzga la disputa en sí.
Que un agente pueda alcanzar toda acción del ciclo de vida. fund, release, refund y expire no tienen id de acción MCP; solo create, get, list, evidence y dispute lo tienen.
Detalles
Notas de construcción
Antes de construir
Una disputa cerrada se resuelve en cerrada
Si se planteó una disputa cuando la liquidación ya se había liberado, resolverla vuelve a closed con fundsMoved: false, ya que el dinero se movió antes de que existiera la disputa.
Este módulo no tiene README
Settlement no tiene README; todo lo descrito aquí sale de leer directamente su código de servicio y sus tests, no de un documento de alcance redactado.
escrow es un alias
La ruta REST /api/v1/acp/escrow/* llega al mismo manejador que /api/v1/acp/settlement/*; no es una implementación aparte.
Límites y medición
amountCents debe ser un entero seguro positivo; la moneda debe ser un código ISO 4217 de tres letras.
El content de la evidencia está limitado a 16 384 caracteres y la description a 2000.
fund, release, refund y expire no tienen id de acción MCP ni de contrato y son accesibles solo por REST.
Acceso
API y MCP
REST y MCP
Autentícate con una clave de API del workspace como token Bearer. La URL base es https://api.intramedial.com.
Endpoints REST
GET/api/v1/acp/settlement/listLista las liquidaciones de este workspace.
GET/api/v1/acp/settlement/getLee una liquidación por id.
POST/api/v1/acp/settlement/createAbre una liquidación nueva con sus vínculos.
Acciones MCP
MCPcoordination.settlement.listLista liquidaciones como acción MCP.
MCPcoordination.settlement.getLee una liquidación como acción MCP.
MCPcoordination.settlement.createCrea una liquidación como acción MCP.