> ## Documentation Index
> Fetch the complete documentation index at: https://docs.whop.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Partner Referral Request

Partner Referral Requests let partners create referral links and request attribution for an existing business or enrolled partner, with manual requests requiring recipient approval.

## Endpoints

| Endpoint | Request |
| - | - |
| [List partner referral requests](/api-reference/beta/partner-referral-requests/list-partner-referral-requests) | <Badge color="blue" size="sm" stroke>GET</Badge> `/partner_referral_requests` |
| [Retrieve a partner referral request](/api-reference/beta/partner-referral-requests/retrieve-a-partner-referral-request) | <Badge color="blue" size="sm" stroke>GET</Badge> `/partner_referral_requests/{id}` |
| [Create a partner referral request](/api-reference/beta/partner-referral-requests/create-a-partner-referral-request) | <Badge color="green" size="sm" stroke>POST</Badge> `/partner_referral_requests` |
| [Accept a partner referral request](/api-reference/beta/partner-referral-requests/accept-a-partner-referral-request) | <Badge color="green" size="sm" stroke>POST</Badge> `/partner_referral_requests/{id}/accept` |
| [Cancel a partner referral request](/api-reference/beta/partner-referral-requests/cancel-a-partner-referral-request) | <Badge color="green" size="sm" stroke>POST</Badge> `/partner_referral_requests/{id}/cancel` |
| [Decline a partner referral request](/api-reference/beta/partner-referral-requests/decline-a-partner-referral-request) | <Badge color="green" size="sm" stroke>POST</Badge> `/partner_referral_requests/{id}/decline` |

## Attributes

<Columns cols={2}>
  <Column>
    <ResponseField name="id" type="string" required>
      Partner referral request ID, prefixed `prfr_`.
    </ResponseField>

    <ResponseField name="account" type="object | null" required>
      Business receiving the request, when one is assigned.

      <Accordion title="Properties" defaultOpen={true}>
        <ResponseField name="id" type="string" required>
          Account ID, prefixed `biz_`.
        </ResponseField>

        <ResponseField name="title" type="string" required>
          Account display name.
        </ResponseField>
      </Accordion>
    </ResponseField>

    <ResponseField name="authorized_user_id" type="string | null" required>
      The partner's team membership this referral was created for, prefixed `ausr_`.
      `null` when the referral is personal.
    </ResponseField>

    <ResponseField name="code" type="string | null" required>
      Unique referral code, when assigned.
    </ResponseField>

    <ResponseField name="created_at" type="string" required>
      When the request was created, as an ISO 8601 timestamp.
    </ResponseField>

    <ResponseField name="max_redemptions" type="integer | null" required>
      Maximum permitted redemptions, when limited.
    </ResponseField>

    <ResponseField name="partner" type="object" required>
      Public profile of the requesting partner.

      <Accordion title="Properties" defaultOpen={true}>
        <ResponseField name="id" type="string" required>
          User ID, prefixed `user_`.
        </ResponseField>

        <ResponseField name="name" type="string | null" required>
          Display name.
        </ResponseField>

        <ResponseField name="profile_picture" type="object" required>
          Avatar wrapper; its `url` is always present, using a generated placeholder when the user set no picture.

          <Accordion title="Properties" defaultOpen={true}>
            <ResponseField name="url" type="string" required>
              Avatar image URL. Always present — a generated placeholder when the user set no picture.
            </ResponseField>
          </Accordion>
        </ResponseField>

        <ResponseField name="username" type="string" required>
          Public username.
        </ResponseField>
      </Accordion>
    </ResponseField>

    <ResponseField name="request_type" type="string" required>
      How the referral request was initiated.

      Available options: `manual`, `ownership_transfer`, `link`
    </ResponseField>

    <ResponseField name="rewards" type="object[]" required>
      Rewards offered by this request.

      <Accordion title="Properties" defaultOpen={true}>
        <ResponseField name="id" type="string" required>
          Partner reward ID, prefixed `prwd_`.
        </ResponseField>

        <ResponseField name="bot_qualification_type" type="string | null" required>
          Activity that qualifies for this reward, when specified.

          Available options: `sales`, `ad_spend`
        </ResponseField>

        <ResponseField name="qualification_amount" type="object" required>
          USD amount of qualifying activity required to earn the reward.

          <Accordion title="Properties" defaultOpen={true}>
            <ResponseField name="amount" type="string" required>
              The amount in major units, as an exact decimal string — `"10.00"` is ten
              dollars. A string so no float rounds it in transit.
            </ResponseField>

            <ResponseField name="currency" type="string" required>
              Three-letter ISO 4217 currency code, lowercase.
            </ResponseField>

            <ResponseField name="decimals" type="integer" required>
              How many decimal places the amount CARRIES — the precision the charge itself
              runs at.
            </ResponseField>

            <ResponseField name="display_decimals" type="integer" required>
              How many decimal places to SHOW. Usually equal to `decimals`, and deliberately not always: COP is charged in centavos but written in whole pesos, so it is `2` and `0`. Format the number in your own locale using this.
            </ResponseField>
          </Accordion>
        </ResponseField>

        <ResponseField name="recipient" type="string | null" required>
          Reward recipient's role, or null for a fixed user who is not the requesting partner.

          Available options: `business`, `partner`
        </ResponseField>

        <ResponseField name="recipient_id" type="string | null" required>
          Concrete recipient's user or business ID, or null until a business redeems the
          offer.
        </ResponseField>

        <ResponseField name="reward_amount" type="object" required>
          USD amount granted after qualification.

          <Accordion title="Properties" defaultOpen={true}>
            <ResponseField name="amount" type="string" required>
              The amount in major units, as an exact decimal string — `"10.00"` is ten
              dollars. A string so no float rounds it in transit.
            </ResponseField>

            <ResponseField name="currency" type="string" required>
              Three-letter ISO 4217 currency code, lowercase.
            </ResponseField>

            <ResponseField name="decimals" type="integer" required>
              How many decimal places the amount CARRIES — the precision the charge itself
              runs at.
            </ResponseField>

            <ResponseField name="display_decimals" type="integer" required>
              How many decimal places to SHOW. Usually equal to `decimals`, and deliberately not always: COP is charged in centavos but written in whole pesos, so it is `2` and `0`. Format the number in your own locale using this.
            </ResponseField>
          </Accordion>
        </ResponseField>
      </Accordion>
    </ResponseField>

    <ResponseField name="status" type="string | null" required>
      The approval state, or null for requests without an approval process.

      Available options: `pending`, `accepted`, `denied`, `cancelled`
    </ResponseField>

    <ResponseField name="updated_at" type="string" required>
      When the request last changed, as an ISO 8601 timestamp.
    </ResponseField>

    <ResponseField name="user" type="object | null" required>
      User receiving the attribution request, or null for a business request or referral link.

      <Accordion title="Properties" defaultOpen={true}>
        <ResponseField name="id" type="string" required>
          User ID, prefixed `user_`.
        </ResponseField>

        <ResponseField name="name" type="string | null" required>
          Display name.
        </ResponseField>

        <ResponseField name="profile_picture" type="object" required>
          Avatar wrapper; its `url` is always present, using a generated placeholder when the user set no picture.

          <Accordion title="Properties" defaultOpen={true}>
            <ResponseField name="url" type="string" required>
              Avatar image URL. Always present — a generated placeholder when the user set no picture.
            </ResponseField>
          </Accordion>
        </ResponseField>

        <ResponseField name="username" type="string" required>
          Public username.
        </ResponseField>
      </Accordion>
    </ResponseField>
  </Column>

  <Column>
    <div className="api-resource-sticky-example">
      ```json PartnerReferralRequest theme={null}
      {
      	"id": "prfr_xxxxxxxxxxxxxx",
      	"request_type": "manual",
      	"status": "accepted",
      	"code": null,
      	"max_redemptions": null,
      	"account": {
      		"id": "biz_xxxxxxxxxxxxxx",
      		"title": "Shine Time Auto Detailing"
      	},
      	"partner": {
      		"id": "user_xxxxxxxxxxxxxx",
      		"name": "Dana Whitfield",
      		"username": "danawhitfield",
      		"profile_picture": {
      			"url": "https://ui-avatars.com/api/?name=Dana+Whitfield"
      		}
      	},
      	"user": null,
      	"rewards": [
      		{
      			"id": "prwd_xxxxxxxxxxxxxx",
      			"recipient": "partner",
      			"recipient_id": "user_xxxxxxxxxxxxxx",
      			"bot_qualification_type": "sales",
      			"qualification_amount": {
      				"amount": "1000.00",
      				"currency": "usd",
      				"decimals": 2,
      				"display_decimals": 2
      			},
      			"reward_amount": {
      				"amount": "100.00",
      				"currency": "usd",
      				"decimals": 2,
      				"display_decimals": 2
      			}
      		}
      	],
      	"created_at": "2026-09-10T09:00:00.000Z",
      	"updated_at": "2026-09-11T17:20:00.000Z",
      	"authorized_user_id": null
      }
      ```
    </div>
  </Column>
</Columns>


## Related topics

- [Partners](/api-reference/beta/partners/partner.md)
- [Retrieve a Partner Referral Request](/api-reference/beta/partner-referral-requests/retrieve-a-partner-referral-request.md)
- [Create a Partner Referral Request](/api-reference/beta/partner-referral-requests/create-a-partner-referral-request.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.