---
name: partli-affiliate-program
description: "Operate a Partli affiliate or referral program: launch a program, review partner applications, set rewards, answer partner questions, close the month (payouts via Stripe, PayPal, Wise or bank) and report commissions. Use whenever the user mentions Partli, their affiliate/referral/partner program, affiliates, commissions or partner payouts, and the Partli MCP server or `partli` CLI is available."
---

# Operating Partli

Partli is affiliate and referral program software. You operate it through one of two surfaces with identical operations:

- **MCP server** (preferred when connected): `https://partli.app/api/mcp`. Tools are named after operations, e.g. `setup_status`, `approve_partner`. Every tool accepts an optional `workspace` (slug) to target another product.
- **CLI**: `npm i -g partli`, auth with `partli config set-key pk_live_...` or `PARTLI_API_KEY`. Friendly commands (`partli stats`, `partli partners list --status pending`, `partli payouts run`) plus two escape hatches that cover every operation: `partli ops` (list operations and schemas) and `partli call <operation> --json '{...}'`. Output is JSON.

If neither is available, tell the user how to connect: add `https://partli.app/api/mcp` as a connector (OAuth sign-in), or create an API key in the dashboard under API keys.

## Before you act

- Money: run_payouts, send_connected_payouts, mark_manual_payouts_paid, attribute_sale, set_retainer, release_commission and review_bounty_claim create or move real money. Show the user what will happen and get an explicit yes first.
- Email: approve_partner, reject_partner, invite_partner, ban_partner, send_campaign and import_partners (with sendWelcomeEmail) email real people. Confirm first; show campaign text before sending.
- Currencies: never add amounts in different currencies. Results are grouped by currency; report each separately.
- Pagination: list_commissions and list_payouts return hasMore/nextCursor. Follow the cursor, or use commission_summary for totals; never treat page one as everything.
- Funding: card top-ups to the payout balance take days to settle. If payout_balance shows funds settling or too little drawable, say so instead of running payouts.
- Units: create_program takes rewardAmount as whole PERCENT for percentage rewards and CENTS for flat rewards. Money amounts elsewhere are cents unless a field says dollars.
- verify_attribution needs a human to complete a real checkout on the site; give them the test URL and call it again afterwards.

## Orientation

- `setup_status` is the go-live checklist; each unfinished step names the operation that fixes it. Start here when unsure.
- `list_workspaces` shows every product the account runs; each workspace has its own programs, partners and billing.
- A **program** is one offer (destination URL, reward, application form). **Groups** are tiers with their own reward rules and holding periods. **Commissions** go pending → approved (after the holding period) → paid, or clawed_back on refunds and disputes.
- Payout rails: Stripe Connect (Partli sends it from the pre-funded balance; 1% + Stripe at cost), or the merchant's own PayPal/Wise (connected, sent with `send_connected_payouts`) or bank transfer (merchant sends, then `mark_manual_payouts_paid`). No Partli fee on PayPal, Wise or bank.

## Workflows

- **Launch an affiliate program**: Create a program, install and verify tracking, set rewards and go live. See [launch-program](references/launch-program.md).
- **Review partner applications**: Triage pending applicants with reasons, then approve or reject in one confirmed batch. See [review-applications](references/review-applications.md).
- **Close the month: pay partners and report**: Check funding, pay every rail (Stripe, PayPal, Wise, bank), record it and produce the period report. See [monthly-close](references/monthly-close.md).
- **Weekly program review**: One read-only pass over performance, applicants, messages, fraud flags and bounty claims. See [weekly-review](references/weekly-review.md).
- **Move partners from another platform**: Import partners from Rewardful, FirstPromoter, PartnerStack, Dub or Tolt without breaking their links. See [migrate-partners](references/migrate-partners.md).

## Reporting

Lead with the answer, keep currencies separate, give counts with amounts, and say what you did not do and why (skipped payouts, unanswered messages). Link the user to the dashboard page when a step needs them: `https://partli.app/<workspace>/<page>`.
