> ## Documentation Index
> Fetch the complete documentation index at: https://www.marqeta.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a stop order

> Places a new stop order to block future recurring transactions from a specific merchant for a given card.

POST/v3/cards/\{card\_token}/stoporders

Places a new stop order to block future recurring transactions from a specific merchant for a given card.

> [!NOTE]
>
> **Note** If you reissue a card whose source card had a stop order on it, the stop order will not carry over to the reissued card. You must create a new stop order for the reissued card if you would like to continue blocking future recurring transactions.

For errors associated with the creation of a stop order, see the [Errors](/docs/core-api/errors.md) page.

## Path parameters

| Fields | Description |
| - | - |
| card\_token string  Required | Token of the card on which to place the stop order. **Allowable Values:**  Existing card token |

## Request body

| Fields | Description |
| - | - |
| transaction\_token string  Required | Marqeta-assigned token identifying the recurring transaction series. **Allowable Values:**  Existing transaction token |
| stop\_reason string  Required | Reason for the stop order. **Allowable Values:**  `CANCELLED_SUBSCRIPTION` - Cardholder canceled the subscription.  `TRIAL_ENDED` - Free trial period has ended.  `UNRECOGNIZED_CHARGE` - Cardholder does not recognize the charge.  `BILLING_ISSUE` - Billing dispute or problem.  `MERCHANT_UNRESPONSIVE` - Merchant is not responding to cancellation requests.  `PRICE_CHANGE` - Subscription price changed unexpectedly.  `SUSPECTED_FRAUD` - Potential fraudulent activity.  `CARD_LOST_OR_REPLACED` - Card was lost, stolen, or replaced.  `OTHER` - Other reason. Use the `reason_description` field for details. |
| reason\_description string  Optional | Free-text description of the reason. **Allowable Values:**  255 char max |
| duration integer  Optional | Duration of the stop order. Defaults to `13` if a value for this field is not provided. Max: `60`. **Allowable Values:**  Integer between `1` and `60` |
| duration\_unit string  Optional | Unit of the duration of the stop order. Currently the only values supported for this field are `MONTH` and `YEAR`. If no value is provided, `duration_unit` defaults to `MONTH`. If a value for `duration_unit` is provided without also providing a value for the `duration` field, then the endpoint returns a validation error. **Allowable Values:**  `MONTH`, `YEAR` |

## Response body

See [Stop order object](/docs/core-api/subscription-management).

## Sample request

```json JSON lines wrap theme={null}
{
  "transaction_token": "15254919",
  "stop_reason": "OTHER",
  "reason_description": "other reasons",
  "duration": 2,
  "duration_unit": "MONTH"
}
```

## Sample response

```json JSON lines wrap theme={null}
{
  "stop_order_token": "so_12345",
  "card_token": "card_token_123",
  "transaction_token": "15254919",
  "merchant_id": "mid",
  "merchant_name": "merchant_name",
  "original_amount": 20.00,
  "stop_reason": "OTHER",
  "reason_description": "other reasons",
  "user_token": "cardholder_124",
  "duration": 2,
  "duration_unit": "MONTH",
  "status": "ACTIVE",
  "created_time": "2025-01-28T19:24:43Z",
  "last_modified_time": "2025-01-28T19:24:43Z",
  "expiry_time": "2025-03-28T23:59:59Z"
}
```


## Related topics

- [Subscription Management Overview](/docs/core-api/subscription-management.md)
- [Create stop payment order](/docs/core-api/ach-receiving/stop-payment-orders/create-stop-payment-order.md)
- [Stop Payment Orders Overview](/docs/core-api/ach-receiving/stop-payment-orders.md)
- [Update stop order](/docs/core-api/subscription-management/update-stop-order.md)
- [Stop Order Object](/docs/core-api/subscription-management/subscription-management-object.md)
