orkasa

Recursos

Operaciones

listar · ver · crear · actualizar

Filtros

GET /operations?stage=&operation_type=&lead_id=&open_only=

Las respuestas exponen flow, stage, stage_label e is_terminal.

Crear

POST /operations pasa por la misma primitiva que la aplicación: un lead tiene como máximo una operación abierta por tipo, así que si ya existe se devuelve con 200 en vez de crear un duplicado. 201 significa que se creó ahora.

lead_iduuidrequired
operation_typebuy | rent | sellrequired
stagestring

Estado inicial, no una transición: aquí no hay compuerta. Es lo que permite importar una cartera cuyos negocios ya vienen a mitad del embudo.

Actualizar la etapa

PATCH /operations/{id} con stage no es una escritura de columna. Obedece las reglas del botón « Avanzar »:

  • un paso a la vez — saltarse una etapa es 422 invalid_transition;
  • la compuerta de la etapa actual tiene que estar pasada, si no 422 stage_gate_blocked con lo que falta en details.pending_actions;
  • lost · expired · cancelled se alcanzan desde cualquier punto; lost exige lost_reason;
  • won · sold · rented solo desde la última etapa activa del recorrido;
  • una operación cerrada no se mueve (422 operation_closed).

details.reason lleva la variante legible por máquina: invalid_stage, invalid_transition, stage_gate_blocked, operation_closed, lost_reason_required, db_gate_blocked.

La base de datos impone compuertas propias por encima de estas — un alquiler no cierra sin el depósito pagado, por ejemplo. Salen como 422 con details.reason = "db_gate_blocked".

Ver Etapas para los tres recorridos completos.