Partnerships
The team's partnerships, with the stage and both sides. Only the side that brought the client moves the funnel.
- GET/v1/partnerships— The team's partnerships
- GET/v1/partnerships/{partnershipId}— One partnership
- POST/v1/partnerships/{partnershipId}/status— Move the partnership stage
Routes
GET
/v1/partnershipsThe team's partnerships
All partnerships in one response. nextCursor exists in the contract for when it paginates — follow it from day one.
Permission:
partnerships:readQuery parameters
statusstring- Stage.one of
PENDINGACCEPTEDDECLINEDCANCELLEDLEAD_REGISTEREDCONTACTEDNEGOTIATINGPROPOSALWONLOST updatedSincestring- Only what changed since this date/time (ISO 8601, UTC).
Response200OK
datalist of Partnershiprequired- The partnerships.
nextCursorstringrequirednullable- Next page cursor (null = done).
Example
curl -X GET 'https://api.imobyflow.com.br/v1/partnerships' \
-H "Authorization: Bearer $IMOBYFLOW_API_KEY" \
-H 'Accept-Language: en'Errors for this route
GET
/v1/partnerships/{partnershipId}One partnership
The partnership, with both sides and who can move the funnel.
Permission:
partnerships:readPath parameters
partnershipIdstringrequired- Partnership id (
pship-…).
Response200OK
dataPartnershiprequired- The partnership.
Example
curl -X GET 'https://api.imobyflow.com.br/v1/partnerships/pship-5b8d2f1e9a3c' \
-H "Authorization: Bearer $IMOBYFLOW_API_KEY" \
-H 'Accept-Language: en'Errors for this route
POST
/v1/partnerships/{partnershipId}/statusMove the partnership stage
Only the side that brought the client moves the funnel (canMoveFunnel). The other side can only close it after asking for an update and waiting 15 days without an answer — the dashboard rule.
Permission:
partnerships:writeSupports dry runSupports Idempotency-KeyPath parameters
partnershipIdstringrequired- Partnership id (
pship-…).
Query parameters
dryRunbooleantrue= dry run: validates and says what would happen, without writing anything.
Request body
statusstringrequired- The new stage.one of
PENDINGACCEPTEDDECLINEDCANCELLEDLEAD_REGISTEREDCONTACTEDNEGOTIATINGPROPOSALWONLOST
Example body
{
"status": "PROPOSAL"
}Response200OK
dataPartnershiprequired- The object as it now stands.
resultPartnershipWriteResultrequired- The outcome.
Example
# Dry run: nothing is written. Remove ?dryRun=true to write for real.
curl -X POST 'https://api.imobyflow.com.br/v1/partnerships/pship-5b8d2f1e9a3c/status?dryRun=true' \
-H "Authorization: Bearer $IMOBYFLOW_API_KEY" \
-H 'Accept-Language: en' \
-H "Idempotency-Key: $(uuidgen)" \
-H 'Content-Type: application/json' \
--data @- <<'JSON'
{
"status": "PROPOSAL"
}
JSONErrors for this route
Objects
Party
One side of the partnership.
accountIdstringrequirednullable- Account id.
namestringrequirednullable- Name.
typestringrequirednullable- Account type.
Partnership
A partnership.
idstringrequired- Partnership id.
statusstringrequired- Stage.one of
PENDINGACCEPTEDDECLINEDCANCELLEDLEAD_REGISTEREDCONTACTEDNEGOTIATINGPROPOSALWONLOST kindstringrequirednullableCLIENT_FOR_PROPERTYorPROPERTY_FOR_CLIENT.propertyIdstringrequirednullable- Property.
leadIdstringrequirednullable- Client.
matchIdstringrequirednullable- The originating opportunity.
developmentIdstringrequirednullable- Development (new-development registration).
developmentTitlestringrequirednullable- Development name.
scoreintegerrequirednullable- Opportunity score.
summarystringrequirednullable- Summary.
reasonslist of stringrequired- Why it matches.
messagestringrequirednullable- Request message.
ourSidestringrequirednullable- The account's side:
REQUESTERorADDRESSEE. ourBrokerIdstringrequirednullable- The in-house broker in the partnership.
canMoveFunnelbooleanrequired- The account can move the stage — only the side that brought the client can.
requesterPartyrequirednullable- Requester.
addresseePartyrequirednullable- Addressee.
counterpartobjectrequired- The partner on the other side.
counterpart.namestringrequirednullable- Name.
counterpart.typestringrequirednullable- Account type.
counterpart.organizationstringrequirednullable- Agency.
counterpart.contactNamestringrequirednullable- Contact.
counterpart.phonestringrequirednullable- Phone.
counterpart.emailstringrequirednullable- E-mail.
counterpart.crecistringrequirednullable- Broker license.
counterpart.creciVerifiedbooleanrequired- License verified.
propertyPropertySnapshotrequirednullable- The property.
clientClientSnapshotrequirednullable- The client.
lastProgressAtstringrequirednullable- Last stage move.
protectedUntilstringrequirednullable- Until when the client is protected (new development).
propertyOffMarketAtstringrequirednullable- When the property went off the market.
createdAtstringrequired- When it was created (UTC).
updatedAtstringrequired- Last change (UTC).
PartnershipWriteResult
The outcome.
outcomestringrequired- What happened.
dryRunbooleanrequired- It was a dry run.