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

# Transition requirement

> Drive the requirement state machine through Requirements::TransitionService. Allowed events are triage, request_approval, approve, reject, start, resolve, sign_off, close, cancel and reopen.



## OpenAPI

````yaml /openapi/application.json post /api/v1/accounts/{account_id}/requirements/{id}/transition
openapi: 3.1.0
info:
  title: API de Yampi
  description: >-
    API de cuenta de Yampi: chats, inventario, negocios, contratos, tesorería y
    Livia. Autenticación con el header `api_access_token`.
  version: 1.2.0
  termsOfService: https://yampi.ai/terms/
  contact:
    email: hola@yampi.ai
  license:
    name: MIT License
    url: https://opensource.org/licenses/MIT
servers:
  - url: https://app.yampi.ai
    description: Producción
security: []
tags:
  - name: Agents
    description: Agent management APIs
  - name: Canned Responses
    description: Pre-defined responses for common queries
  - name: Contacts
    description: Contact management APIs
  - name: Contact Labels
    description: Manage contact labels
  - name: Conversation Assignments
    description: Manage conversation assignments
  - name: Conversation Labels
    description: Manage conversation labels
  - name: Conversations
    description: Conversation management APIs
  - name: Custom Attributes
    description: Custom fields for contacts and conversations
  - name: Custom Filters
    description: Saved filters for conversations
  - name: Inboxes
    description: Communication channels setup
  - name: Integrations
    description: Third-party integrations
  - name: Messages
    description: Message management APIs
  - name: Profile
    description: User profile APIs
  - name: Reports
    description: Analytics and reporting APIs
  - name: Teams
    description: Team management APIs
  - name: Webhooks
    description: Event notification webhooks
  - name: Automation Rule
    description: Workflow automation rules
  - name: Help Center
    description: Knowledge base management
  - name: Account
    description: Current account profile and settings
  - name: Audit Logs
    description: Account audit log
  - name: Properties
    description: Property portfolio APIs
  - name: Companies
    description: Company CRM APIs
  - name: Opportunities
    description: Opportunity CRM APIs
  - name: Opportunity Reminders
    description: Reminders on opportunities
  - name: Contract Templates
    description: Contract template library
  - name: Contract Submissions
    description: Contract sending and tracking
  - name: Contract Imports
    description: Import signed contracts into the account
  - name: Livia
    description: Asistentes de Livia
  - name: Livia Tareas
    description: Tareas one-shot de Livia
  - name: SLA Policies
    description: SLA policy management
  - name: Applied SLAs
    description: SLA instances applied to conversations
  - name: SAML Settings
    description: Account SAML SSO settings
  - name: Treasury Subscriptions
    description: Recurring treasury subscriptions
  - name: Treasury Rent Readjustments
    description: Proposed rent raises reviewed before the tenant is notified
  - name: Treasury Payments
    description: Treasury payment recording
  - name: Treasury Adjustments
    description: Debit and credit adjustments
  - name: Treasury Adjustment Concepts
    description: Catálogo de conceptos de la agencia para cargos y descuentos.
  - name: Treasury Rules
    description: Notification, retry, collection and tax rules
  - name: Treasury Dashboard
    description: Treasury dashboard
  - name: Treasury Settings
    description: Treasury account settings
  - name: Treasury Owners
    description: Owner statements
  - name: Treasury Reports
    description: Aging and commission reports
  - name: Livia Documentos
    description: Documentos de conocimiento de Livia
  - name: Livia Escenarios
    description: Escenarios de un asistente de Livia
  - name: Livia Herramientas
    description: Herramientas HTTP de Livia
  - name: Livia Desk
    description: Hilos y mensajes de Livia Desk
  - name: Client Qualifications
    description: >-
      Criterios con los que un asistente califica a un cliente a partir de una
      conversación, y las bandas en las que cae.
  - name: Livia Preferencias
    description: Preferencias de Livia a nivel de cuenta
  - name: Documents
    description: Account document library
  - name: Document Folders
    description: Document library folders
  - name: Calendar Events
    description: Account calendar, availability and booking links
  - name: Agent Tasks
    description: Agent task inbox and lifecycle
  - name: Labels
    description: Account labels
  - name: Notifications
    description: User notifications and notification settings
  - name: Search
    description: Account search and AI search
  - name: Macros
    description: Conversation macros
  - name: Campaigns
    description: Outbound campaigns
  - name: Flow Definitions
    description: Livia flow builder
  - name: Custom Roles
    description: Custom agent roles
  - name: Assignment Policies
    description: Conversation assignment policies
  - name: Requirements
    description: Capture requirements
  - name: Zones
    description: Location zones and cities
  - name: Geocoding
    description: Authenticated geocoding
  - name: Domains
    description: Account custom domains
  - name: Connector Clients
    description: MCP connector client identifiers
  - name: Presigned Contracts
    description: Already-signed contracts uploaded to the account
  - name: Contract Webhooks
    description: Outbound contract webhook URLs
  - name: Contracts Settings
    description: Account contracts settings
  - name: Treasury Collections
    description: Collection steps, notices, agreements and exceptions
  - name: Treasury Guarantees
    description: Rental guarantees and claims
  - name: Treasury E-Invoices
    description: Electronic invoicing
  - name: Treasury Available Contracts
    description: Completed contracts that can seed subscriptions
  - name: Opportunity Pipelines
    description: CRM funnels
  - name: Opportunity Columns
    description: CRM kanban columns
  - name: Opportunity Lose Reasons
    description: CRM lose reasons
  - name: Requirement Quotes
    description: Priced quotes on capture requirements
  - name: Conversation Participants
    description: Agents participating in a conversation
  - name: Conversation Draft Messages
    description: Per-conversation composer drafts
  - name: MCP
    description: Account-scoped MCP JSON-RPC server
  - name: Treasury Bank Batches
    description: Bank payout files and beneficiary account confirmation
  - name: Treasury Bank Statements
    description: Imported bank statements and matching of their lines
  - name: Treasury Third Parties
    description: >-
      Propietarios, administraciones, proveedores y aliados a los que la agencia
      les paga o les cobra.
  - name: Treasury Giros
    description: What each recipient receives, by date and channel
  - name: Contract Drafts
    description: Contracts being written before they are sent
  - name: Contract Reviews
    description: Review rounds, versions and comments on a contract
  - name: Contact Assignment Requests
    description: Requests to be assigned a contact
  - name: Onboarding
    description: Account onboarding details
  - name: Owner Portal Invites
    description: Owner portal invite, eligibility and revoke
  - name: Channel Authorizations
    description: Start OAuth or embedded signup for inbox channels
  - name: CSAT Survey Responses
    description: Account CSAT responses, metrics and review notes
  - name: Dashboard
    description: Account dashboard summary and trends
  - name: Dashboard Apps
    description: Embedded dashboard apps
  - name: Bulk Actions
    description: Bulk conversation and contact actions
  - name: Assignable Agents
    description: Agents assignable across a set of inboxes
  - name: Tracking Pixels
    description: Advertising tracking pixels
  - name: Calls
    description: Account call history
  - name: WhatsApp Calls
    description: WhatsApp voice calls
  - name: WhatsApp Groups
    description: WhatsApp Cloud group management on an inbox
paths:
  /api/v1/accounts/{account_id}/requirements/{id}/transition:
    parameters:
      - $ref: '#/components/parameters/account_id'
    post:
      tags:
        - Requirements
      summary: Transition requirement
      description: >-
        Drive the requirement state machine through
        Requirements::TransitionService. Allowed events are triage,
        request_approval, approve, reject, start, resolve, sign_off, close,
        cancel and reopen.
      operationId: transitionRequirement
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: integer
          description: ID of the requirement
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - event
              properties:
                event:
                  type: string
                  description: Transition event
                  enum:
                    - triage
                    - request_approval
                    - approve
                    - reject
                    - start
                    - resolve
                    - sign_off
                    - close
                    - cancel
                    - reopen
                note:
                  type: string
                  description: Decision note recorded on the requirement event
                responsible_party:
                  type: string
                  description: Required for the triage event
                requirement_type:
                  type: string
                  description: >-
                    Optional internal classification for triage, selected from
                    classification_options in the detail response. Any
                    classifiable type of the account's country pack, in any
                    category. Rules and terms follow the new type, calculated
                    from the original filing date.
                cost_estimate:
                  type: number
                  description: Optional cost estimate for the triage event
                tenant_share_percent:
                  type: integer
                  minimum: 1
                  maximum: 99
                  description: >-
                    The tenant's percentage of the cost. Required for the triage
                    event when responsible_party is shared, ignored otherwise.
                classification:
                  type: object
                  additionalProperties: true
                  description: >-
                    Per-type terms the triage decides past responsible_party and
                    cost_estimate (Requirements::ClassificationTerms). Required
                    and optional keys come from
                    classification_options[].types[].classification for the
                    chosen type (e.g. payment_reason, property_tenancy_id,
                    billing_cycle_id, termination_cause, delivery_date,
                    termination_amount, document_kind, complaint_target,
                    complaint_merit, complaint_response). Omit to leave stored
                    terms unchanged.
                to_status:
                  type: string
                  description: Target status for the reopen event
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requirement'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bad_request_error'
        '404':
          $ref: '#/components/responses/not_found'
        '422':
          $ref: '#/components/responses/unprocessable_entity'
components:
  parameters:
    account_id:
      in: path
      name: account_id
      schema:
        type: integer
      required: true
      description: The numeric ID of the account
  schemas:
    requirement:
      type: object
      additionalProperties: true
      properties:
        category:
          type: string
          description: >-
            Public category resolved by the account country catalog; display
            labels are localized by the client.
        id:
          type: integer
        display_id:
          type: integer
        account_id:
          type: integer
        requirement_type:
          type: string
        status:
          type: string
        priority:
          type: string
        source:
          type: string
        title:
          type: string
        description:
          type: string
          nullable: true
        responsible_party:
          type: string
          nullable: true
        tenant_share_percent:
          type: integer
          nullable: true
          description: >-
            The tenant's percentage (1-99) of a shared cost; the landlord's part
            is its complement. Set only while responsible_party is shared.
        approval_status:
          type: string
          nullable: true
        approval_forced:
          type: boolean
          description: >-
            The operator demanded the owner's authorization on top of the type's
            threshold. It can be switched on and never back off.
        cost_estimate:
          type: number
          nullable: true
        classification:
          type: object
          additionalProperties: true
          description: >-
            Per-type terms decided at triage beyond responsible_party and
            cost_estimate (custom_attributes.classification). Keys vary by type
            — e.g. payment_reason, property_tenancy_id, billing_cycle_id,
            termination_cause, delivery_date, termination_amount, document_kind,
            complaint_target, complaint_merit, complaint_response.
        property_id:
          type: integer
          nullable: true
        conversation_id:
          type: integer
          nullable: true
        assignee_id:
          type: integer
          nullable: true
        reporter_contact_id:
          type: integer
          nullable: true
        duplicate_of_id:
          type: integer
          nullable: true
        approval_required:
          type: boolean
          description: >-
            Whether the spend needs the owner's authorization, either because
            approval_forced is on or because the estimated cost reaches the
            type's threshold.
        sign_off_required:
          type: boolean
        owner_portal_enabled:
          type: boolean
          description: >-
            Detail only. Whether the account's owners decide from the owner
            portal.
        classification_editable:
          type: boolean
          description: >-
            Detail only. Whether the classification (cost_estimate,
            responsible_party, tenant_share_percent, requirement_type,
            approval_forced) can still be corrected through update. True while
            the requirement is received or triaged and the owner has not
            approved the spend.
        approval_requested_at:
          type: string
          nullable: true
          description: Detail only. When the requirement last moved into pending_approval.
        classification_options:
          type: array
          description: >-
            Detail only. Every type the requirement may be classified as,
            grouped under its public category in pack order. Display labels are
            localized by the client.
          items:
            type: object
            properties:
              id:
                type: string
                description: Public category ID
              types:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      description: Internal requirement type
                    approval_threshold:
                      type: number
                      nullable: true
                      description: >-
                        Estimated cost at or above which the owner's
                        authorization is required; null when the type never
                        needs it. Pack value account is resolved to the
                        account's requirements approval_threshold.
                    classification:
                      type: object
                      nullable: true
                      description: >-
                        What this type's classification decides (pack
                        classification.required / classification.optional)
                      properties:
                        required:
                          type: array
                          items:
                            type: string
                        optional:
                          type: array
                          items:
                            type: string
                    termination_canons:
                      type: object
                      nullable: true
                      additionalProperties:
                        type: number
                      description: >-
                        Months of canon proposed as termination penalty by
                        cause, when the type defines them
                    resolution_business_days:
                      type: integer
                      nullable: true
                      description: >-
                        Resolution SLA in business days from the type's rule
                        pack
        created_at:
          type: string
        updated_at:
          type: string
    bad_request_error:
      title: data
      type: object
      properties:
        description:
          type: string
        errors:
          type: array
          items:
            $ref: '#/components/schemas/request_error'
    request_error:
      type: object
      properties:
        field:
          type: string
        message:
          type: string
        code:
          type: string
  responses:
    not_found:
      description: Not Found
      content:
        application/json:
          schema:
            type: object
            additionalProperties: true
    unprocessable_entity:
      description: Unprocessable Entity
      content:
        application/json:
          schema:
            type: object
            additionalProperties: true

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.