diff --git a/pkg/rest/apisurface.go b/pkg/rest/apisurface.go
index bb43cd1..a784301 100644
--- a/pkg/rest/apisurface.go
+++ b/pkg/rest/apisurface.go
@@ -420,15 +420,17 @@ func (s *APISurface) UpdateHandler(w http.ResponseWriter, r *http.Request) {
 
 func unpackUpdateRequest(r *http.Request) (*osb.UpdateInstanceRequest, error) {
 	osbRequest := &osb.UpdateInstanceRequest{}
+	if err := unmarshalRequestBody(r, osbRequest); err != nil {
+		return nil, err
+	}
 
 	vars := mux.Vars(r)
-	osbRequest.ServiceID = vars[osb.VarKeyServiceID]
+	osbRequest.InstanceID = vars[osb.VarKeyInstanceID]
 
-	planID := vars[osb.VarKeyPlanID]
-	if planID != "" {
-		osbRequest.PlanID = &planID
+	asyncQueryParamVal := r.FormValue(osb.AcceptsIncomplete)
+	if strings.ToLower(asyncQueryParamVal) == "true" {
+		osbRequest.AcceptsIncomplete = true
 	}
-
 	identity, err := retrieveOriginatingIdentity(r)
 	// This could be not found because platforms may support the feature
 	// but are not guaranteed to.