---
name: access-paddle-dashboard
description: Drop a seller into the Paddle dashboard without a password — mint a magic session with the `user_api_key` (`POST /magic-sessions/authorize`) and redirect to `/magic-sessions/login` with a target (overview, payout_settings, retain_settings, onboarding).
metadata:
  internal: true
---

# Generate authenticated links to the Paddle dashboard

## When to use this skill

Use this skill whenever you need to hand a seller off into the Paddle dashboard from your platform — for tasks better handled in Paddle's UI than rebuilt in yours, such as uploading KYB documents, configuring payout methods, or Retain settings. Magic links log the seller in with no password. Offer a way to jump to the dashboard (sandbox and live) from your payments dashboard.

This uses the seller's **`user_api_key`** (see [`partner-api-basics`](/partners/embed-billing/get-started/api-basics)).

> Redirects only work from domains on Paddle's allowlist. Share your platform's domains with your Paddle contact before you integrate.

## 1. Create a magic session

Call `POST /magic-sessions/authorize` with the `user_api_key` as the Bearer token and an empty body. Do this for whichever environment you want to open — for verification and payout tasks, that's live.

```bash
curl -X POST https://api.paddle.com/magic-sessions/authorize \
  -H "Authorization: Bearer $USER_API_KEY"
```

A `201` returns a single-use `code` that expires shortly after creation:

```json
{
  "data": {
    "code": "Vh7nQ2pXk9Lm4Rt1Ws8Yz6Bc3Nj0Gd5Fu2Ei7Ol4KaZ",
    "expires_at": "2026-03-05T19:21:36.711613073Z"
  },
  "meta": { "request_id": "d1f2a3b4-5c6d-47e8-9f0a-1b2c3d4e5f60" }
}
```

## 2. Redirect into the dashboard

Construct a login URL with the `code` and an optional `redirect` target, then send the seller's browser to it. This is a browser redirect — the code is the credential, so there's no Bearer token on the link.

```text
https://vendors.paddle.com/magic-sessions/login?code=Vh7nQ2pXk9Lm4Rt1Ws8Yz6Bc3Nj0Gd5Fu2Ei7Ol4KaZ&redirect=onboarding
```

Use the live host `vendors.paddle.com` for live sessions and `sandbox-vendors.paddle.com` for sandbox. Available `redirect` targets:

| `redirect` value     | Lands on                                               |
| -------------------- | ------------------------------------------------------ |
| `overview` (default) | Paddle dashboard homepage                              |
| `payout_settings`    | Payout settings                                        |
| `retain_settings`    | Retain settings                                        |
| `onboarding`         | Onboarding page (for uploading verification documents) |

If you omit `redirect`, the seller lands on the overview page.

## Common pitfalls

- **Reusing or caching the `code`.** It's single-use and short-lived — mint a fresh one for each hand-off.
- **Redirecting from a non-allowlisted domain.** The login link won't work. Get your platform domains allowlisted first.
- **Putting a Bearer token on the login URL.** Not needed — the `code` authenticates the redirect.
- **Wrong host for the environment.** Use `sandbox-vendors.paddle.com` for sandbox sessions, `vendors.paddle.com` for live.

## Verify

- `POST /magic-sessions/authorize` returns `201` with a `code`.
- Opening the constructed login URL logs the seller in and lands them on the requested page.

## Related docs

- [Generate authenticated links to the Paddle dashboard](/partners/embed-billing/manage-sellers/magic-links)
- Used by [`verify-seller`](/partners/embed-billing/seller-go-live/verify-seller) (document uploads) and [`set-up-payouts`](/partners/embed-billing/seller-go-live/payout-accounts)
