paths: /liens: post: summary: Place a lien description: Place a lien (encumbrance) on an account operationId: placeLien tags: - Liens security: - oauth2: - liens:write x-roles: - DEBT_AUTHORITY requestBody: required: true content: application/json: schema: $ref: '../components/schemas.yaml#/components/schemas/PlaceLienRequest' responses: '201': description: Lien placed successfully content: application/json: schema: $ref: '../components/schemas.yaml#/components/schemas/Lien' '400': $ref: '../openapi.yaml#/components/responses/BadRequest' '403': $ref: '../openapi.yaml#/components/responses/Forbidden' get: summary: List liens description: List liens with optional filtering operationId: listLiens tags: - Liens security: - oauth2: - liens:read parameters: - name: debtor in: query schema: type: string pattern: '^(0x[a-fA-F0-9]{40}|0x[a-fA-F0-9]{64})$' description: Filter by debtor address or account reference - name: active in: query schema: type: boolean description: Filter by active status - name: limit in: query schema: type: integer minimum: 1 maximum: 100 default: 20 - name: offset in: query schema: type: integer minimum: 0 default: 0 responses: '200': description: List of liens content: application/json: schema: type: object properties: items: type: array items: $ref: '../components/schemas.yaml#/components/schemas/Lien' total: type: integer limit: type: integer offset: type: integer /liens/{lienId}: get: summary: Get lien description: Get lien details by ID operationId: getLien tags: - Liens security: - oauth2: - liens:read parameters: - $ref: '../components/parameters.yaml#/components/parameters/LienId' responses: '200': description: Lien details content: application/json: schema: $ref: '../components/schemas.yaml#/components/schemas/Lien' '404': $ref: '../openapi.yaml#/components/responses/NotFound' patch: summary: Reduce lien description: Reduce lien amount operationId: reduceLien tags: - Liens security: - oauth2: - liens:write x-roles: - DEBT_AUTHORITY parameters: - $ref: '../components/parameters.yaml#/components/parameters/LienId' requestBody: required: true content: application/json: schema: $ref: '../components/schemas.yaml#/components/schemas/ReduceLienRequest' responses: '200': description: Lien reduced content: application/json: schema: $ref: '../components/schemas.yaml#/components/schemas/Lien' delete: summary: Release lien description: Release (remove) a lien operationId: releaseLien tags: - Liens security: - oauth2: - liens:write x-roles: - DEBT_AUTHORITY parameters: - $ref: '../components/parameters.yaml#/components/parameters/LienId' responses: '200': description: Lien released content: application/json: schema: type: object properties: lienId: type: string released: type: boolean /accounts/{accountRefId}/liens: get: summary: List liens for account description: Get all liens for a specific account operationId: getAccountLiens tags: - Liens security: - oauth2: - liens:read parameters: - $ref: '../components/parameters.yaml#/components/parameters/AccountRefId' - name: active in: query schema: type: boolean description: Filter by active status responses: '200': description: List of liens content: application/json: schema: type: object properties: accountRefId: type: string liens: type: array items: $ref: '../components/schemas.yaml#/components/schemas/Lien' activeEncumbrance: type: string description: Total active encumbrance amount /accounts/{accountRefId}/encumbrance: get: summary: Get encumbrance summary description: Get active encumbrance and free balance for an account by token operationId: getEncumbrance tags: - Liens security: - oauth2: - liens:read parameters: - $ref: '../components/parameters.yaml#/components/parameters/AccountRefId' - name: token in: query schema: type: string pattern: '^0x[a-fA-F0-9]{40}$' description: Token address (optional, returns for all tokens if omitted) responses: '200': description: Encumbrance summary content: application/json: schema: type: object properties: accountRefId: type: string encumbrances: type: array items: type: object properties: token: type: string tokenCode: type: string balance: type: string activeEncumbrance: type: string freeBalance: type: string