> ## Documentation Index
> Fetch the complete documentation index at: https://docs.clausum.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Assess payout / disbursement risk

> Scores an outbound transfer before execution. Requires secret key (`clm_sk_*`) with `assess` permission. Response includes `flow: "payout"` and standard decision fields.



## OpenAPI

````yaml /api-reference/openapi.json post /api/v1/assess/payout
openapi: 3.1.0
info:
  title: Clausum API
  version: 1.3.0
  description: >-
    REST API for real-time fraud risk assessment (pay-in and payout), fraud
    reporting, blocklist management, and event ingestion. API version 1.3.0.
    Create Partner API keys (`clm_pub_*`, `clm_sk_*`) in the dashboard under
    Conexiones → Claves API. Webhook ingest uses separate `clm_wh_*` keys
    (Conexiones → Entrada webhooks).
  contact:
    name: Clausum API Support
    email: api@clausum.ai
    url: https://clausum.ai
servers:
  - url: https://sandbox.clausum.ai
    description: Sandbox — integrators and trials
  - url: https://dashboard.clausum.ai
    description: Production dashboard and Partner API
security:
  - apiKeyAuth: []
tags:
  - name: Risk
    description: Real-time risk scoring for pay-in checkout and sessions.
  - name: Payout
    description: Outbound disbursement and treasury transfer assessment.
  - name: Fraud
    description: Report confirmed fraud and trigger the downstream chain.
  - name: Blocklists
    description: Manage dynamic blocklists used during assessment.
  - name: Cases
    description: Manage fraud cases (expedientes) and submit them to regulators.
  - name: Events
    description: Ingest raw events from your payment providers.
  - name: System
    description: Health and status checks.
paths:
  /api/v1/assess/payout:
    post:
      tags:
        - Payout
      summary: Assess payout / disbursement risk
      description: >-
        Scores an outbound transfer before execution. Requires secret key
        (`clm_sk_*`) with `assess` permission. Response includes `flow:
        "payout"` and standard decision fields.
      operationId: assessPayoutRisk
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PayoutAssessRequest'
            examples:
              spei:
                summary: SPEI disbursement
                value:
                  amount: 2500
                  amount_unit: major
                  currency: MXN
                  beneficiary:
                    id: ben_123
                    name: Vendor SA
                    country: MX
                    clabe: '012180001234567890'
                  origin:
                    account_id: acct_01
                    country: MX
                  payout:
                    channel: api
                    initiated_by: treasury@company.com
                    first_to_beneficiary: false
      responses:
        '200':
          description: Payout assessment completed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssessResponse'
        '400':
          $ref: '#/components/responses/ValidationError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '504':
          $ref: '#/components/responses/GatewayTimeout'
      security:
        - apiKeyAuth: []
components:
  schemas:
    PayoutAssessRequest:
      type: object
      required:
        - amount
        - currency
      properties:
        amount:
          type: number
          minimum: 0
        amount_unit:
          type: string
          enum:
            - major
            - minor
        amount_minor:
          type: number
        currency:
          type: string
          example: MXN
        transaction_type:
          type: string
          example: payout
        customer_id:
          type: string
        beneficiary:
          type: object
          properties:
            id:
              type: string
            name:
              type: string
            country:
              type: string
            bank_name:
              type: string
            clabe:
              type: string
            iban:
              type: string
            account_hash:
              type: string
            swift_bic:
              type: string
        origin:
          type: object
          properties:
            account_id:
              type: string
            customer_id:
              type: string
            country:
              type: string
            name:
              type: string
        payout:
          type: object
          properties:
            rail:
              type: string
            purpose:
              type: string
            first_to_beneficiary:
              type: boolean
            initiated_by:
              type: string
            channel:
              type: string
        device:
          type: object
          properties:
            ip:
              type: string
            fingerprint:
              type: string
        metadata:
          type: object
          additionalProperties: true
    AssessResponse:
      type: object
      properties:
        decision:
          type: string
          enum:
            - approve
            - review
            - challenge
            - decline
        risk_score:
          type: integer
          minimum: 0
          maximum: 100
        signals:
          type: array
          items:
            type: string
          description: Codes of the signals that fired.
        signal_details:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
              weight:
                type: integer
              description:
                type: string
        session_id:
          type: string
        order_id:
          type: string
          nullable: true
        payment_id:
          type: string
          nullable: true
        idempotency_key:
          type: string
          nullable: true
        blocked_by:
          type: string
          nullable: true
          description: Reason when the transaction was hard-blocked.
        latency_ms:
          type: integer
        assess_flow:
          type: string
          enum:
            - payin
            - payout
        flow:
          type: string
          description: Present on payout assess responses.
          example: payout
        field_warnings:
          type: object
          description: >-
            Present when recommended segment fields were omitted; assess still
            succeeds.
          properties:
            missing_recommended:
              type: array
              items:
                type: string
            organization_segment:
              type: string
              enum:
                - merchant
                - psp
                - bank
                - other
            field_requirements_doc:
              type: string
    ApiError:
      type: object
      properties:
        error:
          oneOf:
            - type: string
            - type: object
              properties:
                code:
                  type: string
                message:
                  type: string
                details:
                  type: object
                  additionalProperties: true
  responses:
    ValidationError:
      description: Invalid request body or parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    Unauthorized:
      description: Missing or invalid credentials
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    RateLimited:
      description: Too many requests
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    ServiceUnavailable:
      description: Assess maintenance mode
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
          example:
            error:
              code: ASSESS_MAINTENANCE
              message: Assess temporarily unavailable
    GatewayTimeout:
      description: Assess timeout
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
          example:
            error:
              code: ASSESS_TIMEOUT
              message: Assess timed out — retry with same idempotency key
  securitySchemes:
    apiKeyAuth:
      type: http
      scheme: bearer
      description: >-
        Partner secret or publishable key, e.g. `clm_sk_...` or `clm_pub_...`
        (assess only).
      x-default: clm_sk_your_secret_key

````