---
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.

## Changes

- **2026-03-22** `8c7fa6fb5be3` — 1 info
  - endpoint added
- **2025-12-11** `919eb7a392aa` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/zerosettle/apis/zerosettle-iap-api/changes/iap/cancel-flow/respond/post.md)

---

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