---
title: "Submit Cancel Flow Response"
method: POST
path: "/iap/cancel-flow/respond"
tags: ["Cancel Flow"]
---

# Submit Cancel Flow Response

`POST /iap/cancel-flow/respond`

Submits the user's responses from the cancel flow, including survey answers and the final outcome (cancelled, retained, dismissed, or paused). Used for cancel flow analytics.

## Request body

- object
  - `user_id` string, required — The user's external ID.
  - `product_id` string — The product being cancelled.
  - `outcome` 'cancelled' | 'retained' | 'dismissed' | 'paused', required — The final outcome of the cancel flow.
  - `offer_shown` boolean — Whether a retention offer was shown to the user.
  - `offer_accepted` boolean — Whether the user accepted the retention offer.
  - `pause_shown` boolean — Whether a pause option was shown.
  - `pause_accepted` boolean — Whether the user chose to pause.
  - `pause_duration_days` integer — Number of days the user chose to pause, if applicable.
  - `last_step_seen` string — The last step of the cancel flow the user saw.
  - `variant_id` integer — Experiment variant ID, if the cancel flow is part of an A/B test.
  - `answers` object[] — Array of survey question answers.
    - `question_id` string
    - `answer` string

## Response `200`

Response recorded

- object
  - `status` string

## Other responses

- `401` — Invalid or missing API key.

---

[API](https://skmtc.net/zerosettle/apis/zerosettle-iap-api.md) · [All operations](https://skmtc.net/zerosettle/apis/zerosettle-iap-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/zerosettle/zerosettle-iap-api/versions/1a7aa12f3d5e/schema)
