---
title: "Create a conversion (manual tracking)"
method: POST
path: "/conversions"
tags: ["Conversions"]
---

# Create a conversion (manual tracking)

`POST /conversions`

## Request

- Base URL: `https://refgrow.com/api/v1`
- URL: `https://refgrow.com/api/v1/conversions`
- Auth: HTTP bearer

Use this to record a conversion server-side (e.g. from your Stripe webhook handler). The commission is calculated from your project's commission settings unless you pass `value` explicitly.

## Request body

- CreateConversionBody
  - `type` 'signup' | 'purchase', required
  - `email` string, email
  - `base_value` number: Transaction amount before commission
  - `base_value_currency` string
  - `value` number: Override the commission amount. Otherwise computed from project settings.
  - `affiliate_id` integer
  - `referral_code` string: Used to resolve affiliate_id if not provided
  - `reference` string: Your external transaction id
  - `paid` boolean
  - `coupon_code_used` string

## Response `201`

Conversion recorded. Triggers `conversion.created` webhook.

## Other responses

- `400`: Validation failed

---

[API](https://skmtc.dev/refgrow/apis/refgrow-api.md) - [All operations](https://skmtc.dev/refgrow/apis/refgrow-api/llms.txt) - [OpenAPI document](https://skmtc.dev/refgrow/apis/refgrow-api/revisions/68cce63d08d2?raw)
