The Deal object
Deal UUID
Human-readable sequential deal number (e.g.
1042)Pipeline UUID
UUID of the current stage
UUID of the linked Lead
UUID of the responsible user, or
nullManual deal value. Only used when the deal has no products.
Calculated total: the sum of
price × qty of the products, or value when there are no productsDeal origin (
manual by default)Loss reason. Present only on lost deals.
Free-form note
Date it entered the won stage (ISO 8601)
Date it entered the lost stage (ISO 8601)
Name of the linked Lead (resolved at read time)
Lead’s surname
Lead’s company
Lead’s email
Lead’s phone
URL of the Lead’s avatar
UUID of the Lead’s status
The deal’s product lines
Deal tags — they reuse the same tag catalog as Leads
Number of pending activities
Number of activities that are pending and overdue
Board
GET
/backend/pipelines/{id}/boardQuery Parameters
Search by deal number or by the linked Lead’s name/company
Restrict to a specific stage
recent (newest first) or oldestWhich date the period filter considers:
created, won or lost7d, 30d, 1y or custom. With custom, also provide from and to.Start of the period (ISO 8601). Used only with
period=custom.End of the period (ISO 8601). Used only with
period=custom.List deals
GET
/backend/pipelines/{id}/dealsstage_id to load one
stage at a time instead of the whole pipeline.
Query Parameters
Accepts every filter of the board, plus:Desired page
Items per page. Values outside 1–100 fall back to the default of 20.
Get a deal
GET
/backend/pipeline/deals/{id}Create a deal
POST
/backend/pipeline/dealspipeline.deals.create permission.
Request Body
Pipeline UUID
UUID of the initial stage. It must belong to the given pipeline, otherwise the response is 400.
UUID of an existing Lead
Data to create a new Lead along with the deal
UUID of the responsible user
Loss reason. Required when
stage_id points to the lost stage.Status to apply to the linked Lead
The deal’s product lines
UUIDs of tags to associate
Deal origin. Default:
manual.Update a deal
PUT
/backend/pipeline/deals/{id}pipeline.deals.edit. Omitted fields stay unchanged.
Request Body
New owner
Manual value. Cannot be negative. Only affects
total when the deal has no products.Note
Origin
When sent, it replaces the entire list of products. Send
[] to remove them all.The stage is not changed by this endpoint. Use Move between stages.
Move between stages
PUT
/backend/pipeline/deals/{id}/stagepipeline.deals.edit.
Request Body
UUID of the destination stage. It must belong to the same pipeline as the deal, otherwise the
response is 400.
Loss reason. Required when the destination stage has
kind: "lost".won_at and lost_at first before
applying the destination, so pulling a deal out of Won/Lost discards the marking with it:
The reason can be one of the
loss_reasons configured on the pipeline or free text — the
“Other” option is not stored in the list of reasons.
Error
message strings are returned by the API in Portuguese. Match on code
(ERR_INVALID_INPUT), never on the message text.Deal tags
Deal tags reuse the same tag catalog as Leads — there is no separate catalog.Add a tag
POST
/backend/pipeline/deals/{id}/tags/{tagID}Remove a tag
DELETE
/backend/pipeline/deals/{id}/tags/{tagID}pipeline.deals.edit and return { "success": true }.
Delete a deal
DELETE
/backend/pipeline/deals/{id}pipeline.deals.delete.