---
title: "Create an unpaid provider-hosted checkout handoff after exact human approval"
method: POST
path: "/v1/purchase-plans/{plan_id}/provider-checkout-handoffs"
tags: ["Commerce"]
---

# Create an unpaid provider-hosted checkout handoff after exact human approval

`POST /v1/purchase-plans/{plan_id}/provider-checkout-handoffs`

## Request

- Base URL: `https://api.supplyslate.com`
- URL: `https://api.supplyslate.com/v1/purchase-plans/{plan_id}/provider-checkout-handoffs`
- Auth: one of:
  - OAuth 2 (authorization code, authorization URL `https://mcp.supplyslate.com/authorize`, token URL `https://mcp.supplyslate.com/oauth/token`)
  - HTTP bearer

## Path parameters

- `plan_id` string, required

## Headers

- `Idempotency-Key` string

## Request body

- ProviderCheckoutWrite
  - `merchant_group_key` string, required
  - `shipping_option_id` string
  - `ship_to` object
    - `name` string, required
    - `street1` string, required
    - `street2` string
    - `city` string, required
    - `state` string, required
    - `zip` string, required
    - `country` string
  - `contact` object
    - `email` string, email, required
    - `phone` string
  - `return_url` string, uri

## Response `201`

Created durably

- CheckoutHandoffResponse
  - `data` CheckoutHandoff[]
    - `id` string, required
    - `plan_id` string
    - `merchant` string
    - `status` string
    - `checkout_url` string, uri, nullable
    - `payment_boundary` string
  - `checkout_handoff` CheckoutHandoff
    - `id` string, required
    - `plan_id` string
    - `merchant` string
    - `status` string
    - `checkout_url` string, uri, nullable
    - `payment_boundary` string
  - `request_id` string

## Other responses

- `400`: Invalid request
- `401`: Authentication required
- `403`: Scope or tenant boundary denied
- `404`: Resource not found
- `409`: State conflict or idempotency mismatch
- `429`: Rate limited

---

[API](https://skmtc.dev/supplyslate/apis/supplyslate-agent-native-supply-api.md) · [All operations](https://skmtc.dev/supplyslate/apis/supplyslate-agent-native-supply-api/llms.txt) · [OpenAPI document](https://skmtc.dev/supplyslate/apis/supplyslate-agent-native-supply-api/revisions/f7989551f167?raw)
