Changelog
Changelog
All notable changes to this SDK are documented here. The format follows Keep a Changelog, and versions follow Semantic Versioning.
This file is the canonical changelog. The public docs site at partner-sdk.opendoor.com/changelog mirrors this content for partners who don’t have access to the private GitHub repo.
[Unreleased]
No unreleased changes since the last release.
[1.3.2] - 2026-06-08
Added
OpendoorClient.getCustomerContact({ opendoorOfferRequestId })on both JS and Ruby server SDKs. Returns{ fullName?, email?, phoneNumber? }for the customer who submitted the questionnaire. Requires the offer to have reachedOFFERED— earlier states returnNOT_FOUND.OpendoorClient.getCustomerContact()on the browser@opendoor/partner-sdk-client-js-core, mirroring the server SDK. Calls the partner’s BFF at the newPOST /api/opendoor/v1/customerContactroute (configurable viaendpoints.getCustomerContact).- Auto-prefill of the confirm step in
<ScheduleAssessmentFlow>(React + Vue). On mount the component now callsgetCustomerContact(offerId)and pre-fills the customer name and phone fields. Partners that passcustomerName/customerPhoneprops explicitly keep their existing behavior (the fetch is skipped when both props are set). Fetch failures (including the pre-OFFEREDNOT_FOUNDcase) are silently swallowed — the form just stays empty for manual entry. - “Prefilling customer details” guide section at
partner-sdk.opendoor.com/guides/components/schedule-assessment,
covering the auto-fetch behavior, the new BFF route requirement, and
the explicit
customerName/customerPhoneopt-out.
Notes
- Adds a new required BFF route:
POST /api/opendoor/v1/customerContact → opendoor.getCustomerContact(). The Express dev server, Rails demo, and both Cloudflare Pages demo function templates have it wired; partners need to add the matching route on their BFF for the auto-prefill to function. If the route isn’t wired the schedule flow degrades gracefully — fields stay empty for manual entry, no error surfaced.
[1.3.1] - 2026-06-05
Added
DTC_ONBOARDING_PAGE_IDSconst +DtcOnboardingPageIdtype exported from@opendoor/partner-sdk-client-js-core(and re-exported from the React + Vue packages). The 17 page IDs in the DTC onboarding flow, in display order, as anas consttuple. Use them withskipPagesfor autocomplete and compile-time validation.- “Skipping pages” guide section at partner-sdk.opendoor.com/guides/components/dtc-onboarding, with a complete page-ID reference table and a homebuilder-branch example.
Changed
skipPagesprop on<DtcOnboardingFlow>(React + Vue) is now typed asreadonly DtcOnboardingPageId[]instead ofstring[]. Existing literal-array calls keep working (TS narrows literals); only callers passing a pre-declaredstring[]variable will see a type error. Practically non-breaking since v1.3.0 only shipped 2026-06-05 and the page IDs weren’t documented anywhere partner-facing.
Fixed
- Removed the stale
marketprop row from the<DtcOnboardingFlow>props table in the docs site. The prop was removed from the component in v1.3.0 but the guide page kept listing it.
[1.3.0] - 2026-06-05
Breaking
- Removed
marketprop from<DtcOnboardingFlow>(React + Vue). The prop was a no-op — never consulted by anyshowWhencondition, validator, or filter — and its docstring claim of controlling “market-dependent questions” was misleading. Partners passingmarketshould simply delete the prop; there is no behavior change.
Added
skipPages?: string[]prop on<DtcOnboardingFlow>(React + Vue). Lets partners remove specific pages from the questionnaire entirely (e.g., skip the homebuilder question when the partner already knows the answer). The engine treats skipped pages as if theirshowWhenevaluated to false — they’re dropped from navigation, and downstreamshowWhenconditions still resolve against any pre-setinitialAnswers. ComplementsinitialAnswers, which pre-fills pages but still renders them.
Changed
OpendoorClient.getAssessmentSlotsnow uses GraphQL (JS + Ruby server SDKs) instead of the REST/partner-api-proxy/v2/exterior_assessment_slotsroute. Same method signature, same response shape — only the transport changes. This completes the REST→GraphQL migration across the SDK and unblocks deprecation of the partner-api cloudflare-worker.
Fixed
OpendoorClient.getAssessmentSlotswas calling the wrong URL on the REST path — pointed at the partnership-bff GraphQL host (partner.simplersell.com) and missing the/partner-api-proxybasepath. The request silently fell through to the partner-dashboard-fe SPA which returned HTML, and the SDK threwUnexpected token '<', "<!doctype ".... Superseded by the GraphQL migration above, but relevant for anyone on a@nextbuild between the two fixes. The bug was latent since v1.0.0 — Lennar’s IFO flow never exercised assessment slots, so the broken URL went unnoticed until the post-IFO scheduling work landed.
[1.2.0] - 2026-06-03
Breaking
- Removed
QualificationQuestionscomponent from@opendoor/partner-sdk-client-react. UseDtcOnboardingFlowinstead — same questionnaire engine with co-branding support.
Added
OpendoorClient.scheduleAssessment({ offerId, selectedInspectionTime, reminderPhone?, notes? })on both JS and Ruby server SDKs. Schedules the pre-underwriting home assessment for an offer.calendarTypeparameter ongetAssessmentSlots—'ASSESSMENT_VISIT'(default, pre-UW) or'DILIGENCE_VISIT'(post-contract). Replaces the previously-hardcoded'DILIGENCE_VISIT'default.<ScheduleAssessmentFlow>component in@opendoor/partner-sdk-client-reactand@opendoor/partner-sdk-client-vue— three-step wizard (slot picker → confirm details → success) themed via the SDKappearanceprop.
Earlier versions
For history older than v1.2.0, ask your Opendoor contact — earlier releases predate this changelog.