---
title: "Checkout Abandon"
method: POST
path: "/api/billing/checkout/abandon"
tags: ["billing"]
---

# Checkout Abandon

`POST /api/billing/checkout/abandon`

## Request

- Base URL: `https://app.dataassist.io` (the document declares no server; this is the origin it was published from)
- URL: `https://app.dataassist.io/api/billing/checkout/abandon`
- Auth: none declared

User closed the Razorpay modal without paying — flip pending row to failed.

Idempotent (only flips rows still in `pending`). Verifies with Razorpay
BEFORE marking failed — if the payment was actually captured (e.g., a hard
refresh ate the success callback), completes the purchase instead. Returns
`{ok, status}` where status is one of `failed`, `completed`, `noop`.

## Request body

- CheckoutAbandonBody
  - `purchase_id` integer, required
  - `reason` string

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/dataassist/apis/dataassist-io-server.md) · [All operations](https://skmtc.dev/dataassist/apis/dataassist-io-server/llms.txt) · [OpenAPI document](https://skmtc.dev/dataassist/apis/dataassist-io-server/revisions/43b22ccf75fe?raw)
