---
title: "Attach a Quickstart-managed plan to a customer"
method: POST
path: "/v1/customers/{id}/attach-plan"
tags: ["Customers"]
---

# Attach a Quickstart-managed plan to a customer

`POST /v1/customers/{id}/attach-plan`

Creates a Stripe Subscription on the merchant's connected account for the given Drip (customer, plan) pair. The plan MUST be Drip-managed (`managedBy=DRIP`); run provisionPlanOnStripe / POST `/pricing-plans/:id/reprovision-stripe` first if the plan is still `EXTERNAL`. Idempotent: re-calling with the same customer + plan returns the existing subscription.

> **Requires a secret key (`sk_*`) with the `ADMIN` role.**

## Path parameters

- `id` string, required

## Request body

- object
  - `planId` string, required — Drip pricing plan id
  - `customerEmailOverride` string — Optional email to send to Stripe when the Drip customer row has none. Ignored if the customer already has an email.

## Response `200`

Default Response

---

[API](https://skmtc.net/usedrip/apis/drip-api.md) · [All operations](https://skmtc.net/usedrip/apis/drip-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/usedrip/drip-api/versions/2cb1567969ca/schema)
