Skip to content

CnmlPricingResult

Per-product CNML (Cash Now, More Later / Sell With Upside) pricing result. offerStatus is always non-null and exposes the native SwU lifecycle state (see CnmlOfferStatus). denialInfo is set for the negative states (NOT_ELIGIBLE, DECLINED, WITHDRAWN); offerData is set for positive states (ELIGIBLE, ACCEPTED, ACQUISITION_PROCEEDS_PAID, RESALE_PROCEEDS_PAID). The entire cnml field on OfferRequestWithProductsPricing is null for partners that do not offer SELL_WITH_UPSIDE. Underwriting readiness is independent of Cash eligibility and CNML product acceptance.

type CnmlPricingResult {
offerStatus: CnmlOfferStatus!
denialInfo: DenialInfo
underwritingState: UnderwritingState
underwritingCompletedAt: String
offerData: CnmlOfferData
}
FieldTypeDescription
offerStatusCnmlOfferStatus!—
denialInfoDenialInfo—
underwritingStateUnderwritingStateUnderwriting state for the underlying offer linked to CNML’s active offer. Available even when Sell Direct is DENIED / PRODUCT_INACTIVE. APPROVED means underwriting completed successfully; UNKNOWN means draft or escalated; WALKED means Opendoor decided not to proceed after underwriting. Null when the active offer linkage or its underwriting state is unavailable. Neither ACCEPTED nor pricing alone guarantees approval. Do not treat null or UNKNOWN as APPROVED.
underwritingCompletedAtStringRecorded underwriting completion time for the same active underlying offer, as an ISO 8601 timestamp. Null when unavailable. Use underwritingState, not this timestamp alone, to determine approval.
offerDataCnmlOfferData—