---
title: "Remove a saved payment instrument"
method: DELETE
path: "/billing/payment-methods/{payment_method_id}"
tags: ["Billing"]
---

# Remove a saved payment instrument

`DELETE /billing/payment-methods/{payment_method_id}`

## Request

- Base URL: `https://api.mnemom.ai/v1`
- URL: `https://api.mnemom.ai/v1/billing/payment-methods/{payment_method_id}`
- Auth: HTTP bearer

Owner-only. Detaches the instrument from the organization's Stripe customer. An instrument that does not belong to the resolved organization returns the same 404 as one that does not exist, so this cannot be used to probe another organization. Removing the current default is refused with 409 while other instruments remain — set a new default first.

## Path parameters

- `payment_method_id` string, required

## Query parameters

- `org_id` string

## Response `204`

Instrument detached.

## Other responses

- `400`: Bad request
- `401`: Authentication required
- `403`: Forbidden
- `404`: Resource not found
- `409`: Resource conflict — the request cannot proceed because of a current state conflict (e.g., resource already exists, version mismatch, in-flight idempotency key with a different body).
- `429`: Rate-limit exceeded. The global per-IP limiter (100 requests/minute, applied to every `/v1/*` route) rejected this request. Back off until the window resets — `Retry-After` carries the cooldown in seconds and `X-RateLimit-Reset` the absolute reset time.
- `500`: Server error — request was well-formed but the server failed to fulfill it. Typically a downstream dependency (DB / RPC / external API) returned an unexpected error.

---

[API](https://skmtc.dev/mnemom/apis/mnemom-api.md) · [All operations](https://skmtc.dev/mnemom/apis/mnemom-api/llms.txt) · [OpenAPI document](https://skmtc.dev/mnemom/apis/mnemom-api/revisions/274b7a6ea182?raw)
