Skip to Content
API ReferenceBuyer Desk

Buyer Desk API

Endpoints to create and manage buyer briefs and their compliance gates (bilateral marketplace, Side B). Authenticate with Authorization: Bearer <jwt>. See the Buyer Desk guide.

Create brief

POST /api/dashboard/buyer/briefs Authorization: Bearer <agent-jwt> Content-Type: application/json { "buyerName": "María García", "buyerContact": "maria@example.com", "jurisdiction": "MX", "zoneQuery": "CDMX Polanco", "goal": { "kind": "first_home", "currency": "USD", "availableCash": 150000, "maxMonthlyPayment": 3500, "horizonYears": 3 } }

Request body:

FieldTypeRequiredDescription
buyerNamestringBuyer’s name
buyerContactstringEmail or phone
jurisdictionstringLATAM (per country, e.g. MX) · CA-ON · US · AE
zoneQuerystringTarget zone (e.g. “CDMX Polanco”)
goal.kindfirst_home|rental_incomeGoal type
goal.currencystringGoal currency
goal.availableCashnumberAvailable cash
goal.maxMonthlyPaymentnumberMax monthly payment (first_home)
goal.horizonYearsnumberHorizon in years

Response:

{ "id": "brief_abc123", "status": "active", "targetProfile": { "priceMin": 850000, "priceMax": 1050000, "currency": "MXN" }, "complianceChecks": [ { "type": "aml_kyc", "status": "pending", "jurisdiction": "MX" } ] }

Errors:

StatusErrorCause
422unsupported_jurisdictionJurisdiction not supported (LATAM, CA-ON, US, AE)
422invalid_goalImpossible goal (down payment > available cash)
403not_an_agentCaller is not an agent role

Get brief

GET /api/dashboard/buyer/briefs/{id} Authorization: Bearer <jwt>

Returns the brief with its status, targetProfile, candidates, and gate states.

Verify compliance gate

Brokers only. Fail-closed: the brief stays blocked_compliance until all of its jurisdiction’s gates are verified.

PATCH /api/dashboard/buyer/briefs/{id}/compliance Authorization: Bearer <broker-jwt> Content-Type: application/json { "type": "aml_kyc", "status": "verified" }

Response:

{ "ok": true, "allVerified": true, "retriggered": true }
  • allVerified — all of the brief’s gates are verified.
  • retriggered — the brief returned to active and matching was re-triggered.

Errors:

StatusErrorCause
403forbiddenCaller is not a broker
404not_foundBrief or gate does not exist
409already_verifiedGate was already verified

Per-jurisdiction gates (aml_kyc, fintrac, bra, state_license, fincen_aml, firpta, rera_registration, freehold_eligibility, uae_aml, …) are documented in Compliance Gates.

Last updated on