---
title: "Accept the Partner Program Terms"
method: POST
path: "/v1/me/partner/terms/accept"
tags: ["Partner Program"]
---

# Accept the Partner Program Terms

`POST /v1/me/partner/terms/accept`

## Request

- Base URL: `https://api.subscriby.net`
- URL: `https://api.subscriby.net/v1/me/partner/terms/accept`
- Auth: HTTP bearer

```bash
curl -X POST https://api.subscriby.net/v1/me/partner/terms/accept \
  -H "Authorization: Bearer $SUBSCRIBY_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"
```

Records that you accept the [Partner Program Terms](https://www.subscriby.net/legal/partners) as they stand today, with their version; accepting again after the terms change is the same call. Answers the partner object with `terms_accepted_at` and `terms_version` set. Emits no event.

## Headers

- `Idempotency-Key` string, uuid, required

## Response `200`

The partner object after the change.

- object
  - `data` PartnerResource, required: The caller's standing in the Partner Program: the application's state, the code and the links once approved, the commission ladder, how many creators they referred and converted, what they have earned, and how they are paid; never the payout destination itself.
    - `id` string, required: The partnership's id. A creator holds one.
    - `status` string, required: `applied` (under review by Subscriby), `active` (approved and earning), `rejected` (not approved; `reapply_available_at` says when they may apply again) or `suspended` (approved, but the link no longer attributes and nothing new is earned).
    - `code` string, nullable, required: The partner code, seven characters, carried by every link and typeable on the sign-up form; null until approved.
    - `links` object, nullable, required: The addresses to hand out; null until approved.
      - `web` string, required: The web link: sets the attribution cookie and lands on the marketing site with the friend offer shown.
      - `connectors` object[], required: One deep link per connector whose bot signs creators up, each opening the sign-up conversation with the code attached.
        - `connector` string, required: The connector key.
        - `name` string, required: The connector's name, for a label.
        - `url` string, required: The deep link.
    - `commission_percent` string, nullable, required: The rate the partner earns on every invoice of a creator who converts from now on, as a decimal string with two places: `"15.00"`. Null until approved.
    - `base_percent` integer, required: Where every partner starts, whole percent.
    - `max_percent` integer, required: The ladder's cap, whole percent.
    - `commitment_points` integer, nullable, required: Points the verified commitments add; null until approved.
    - `volume_points` integer, nullable, required: Points the volume tiers reached add; null until approved.
    - `paying_referrals` integer, nullable, required: How many referred creators have converted, the figure the volume tiers read; null until approved.
    - `next_tier_at` integer, nullable, required: The paying-referral count of the next volume tier; null past the last, or until approved.
    - `next_tier_points` integer, nullable, required: What that tier adds; null past the last, or until approved.
    - `commission_months` integer, required: How long a commission runs after each conversion, in months.
    - `hold_days` integer, required: Days a commission waits before it is payable, so a refund inside the window can take it back.
    - `minimum_cash_payout` string, required: The balance a cash rail reaches before Subscriby pays, in USD, as a whole-number string.
    - `friend_discount_percent` integer, required: The discount a referred creator gets on their first paid months, whole percent.
    - `friend_discount_months` integer, required: How many of their first months the discount covers.
    - `currency` string, required: The ISO 4217 code every balance is in. Platform invoices are USD, so it is `USD`.
    - `clicks` integer, required: How many visits the web link has brought.
    - `referrals` object, required: How many creators the partner brought in, by state.
      - `total` integer, required: Every referral recorded.
      - `signed_up` integer, required: Signed up, not yet on a paid plan, inside their conversion window.
      - `converted` integer, required: Paid their first Starter or Growth invoice and earning.
      - `under_review` integer, required: Held by Subscriby for a fraud signal; earning nothing until cleared.
      - `expired` integer, required: Never paid inside the window.
      - `rejected` integer, required: Rejected after review.
    - `balance` object, nullable, required: What the partner has earned, as decimal strings with four places in `currency`; null until approved.
      - `pending` string, required: Commissions still inside the hold.
      - `payable` string, required: Approved and not yet settled, clawbacks netted: what the next credit or payout covers.
      - `credited` string, required: Settled as Subscriby Credit on the partner's own invoices.
      - `paid` string, required: Paid out in cash.
      - `earned` string, required: Everything earned: pending, payable, credited and paid together.
    - `payout_method` string, nullable, required: The rail the partner chose: `credit` (Subscriby Credit on their own invoices), `paypal`, `wise`, `remitly` or `crypto` (USDT on TRC20); null until chosen.
    - `payout_details_complete` boolean, required: Whether the rail has everything a payment needs. The destination itself (the PayPal address, the wallet, the bank account) is never returned.
    - `legal_name` string, nullable, required: The name a payment is made out to, as declared; null until declared.
    - `tax_country` string, nullable, required: The country of tax residence, as an ISO 3166-1 alpha-2 code; null until declared.
    - `us_person` boolean, nullable, required: Whether the partner declared themselves a US person for tax purposes; null until declared.
    - `terms_accepted_at` string, nullable, required: When the partner last accepted the Partner Program Terms, ISO 8601; null until accepted.
    - `terms_version` string, nullable, required: The version of the terms accepted, as a date; null until accepted.
    - `commitments` unknown[], required: The promotion commitments the partner made, in the order promised, each with its proof state.
      - unknown
    - `applied_at` string, required: When the application was filed, ISO 8601.
    - `joined_at` string, nullable, required: When Subscriby approved it, ISO 8601; null until then.
    - `rejected_at` string, nullable, required: When Subscriby declined it, ISO 8601; null otherwise.
    - `rejection_reason` string, nullable, required: Why it was declined, in Subscriby's words; null otherwise.
    - `reapply_available_at` string, nullable, required: When a declined applicant may apply again, ISO 8601; null when they may now, or were not declined.
    - `suspended_at` string, nullable, required: When the partnership was suspended, ISO 8601; null while it stands.
    - `created_at` string, nullable, required: When the row was written, ISO 8601.
    - `updated_at` string, nullable, required: When it last changed, ISO 8601.

## Other responses

- `400`: `IDEMPOTENCY_KEY_MISSING`: every write needs an `Idempotency-Key` header. Send a fresh UUID per distinct operation.
- `401`: `AUTHENTICATION_REQUIRED`: the request carries no bearer token, or one that is revoked, malformed, or minted for another environment (an `sbt_test_` token on production).
- `403`: `TOKEN_MISSING_ABILITY`: the token is valid but does not carry the ability this endpoint requires; `error.context.required_ability` names the one to grant. An endpoint that also checks who owns a row or which tier the account is on answers `FORBIDDEN`, `TEAM_TIER_REQUIRED` or `CONNECTOR_TIER_REQUIRED` with the same status, and says so in its own description.
- `404`: `RESOURCE_NOT_FOUND`: until the caller applies.
- `409`: `IDEMPOTENCY_KEY_REUSED`: the key was already used in the last 24 hours with a different request body.
- `422`: `VALIDATION_FAILED`: while the application is under review or was declined.
- `425`: `IDEMPOTENCY_REPLAY_IN_PROGRESS`: the first request with this key is still running; retry in a few seconds and the original response is replayed.
- `429`: `RATE_LIMITED`: the token has spent its 300 requests a minute or 10,000 an hour; `Retry-After` says when the next one is accepted.

---

[API](https://skmtc.dev/memberpass/apis/subscriby-rest-api.md) · [All operations](https://skmtc.dev/memberpass/apis/subscriby-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/memberpass/apis/subscriby-rest-api/revisions/59c4df91d764?raw)
