# Create campaign

This endpoint allows merchants to create new campaigns on demand by providing a set of the most common parameters used

## Request

| Method | URL                                         |
| ------ | ------------------------------------------- |
| `POST` | `https://api.getrewardful.com/v1/campaigns` |

### Parameters

| Parameter                    | Required?                          | Description                                                                                                                                                                                                                                                                                                                                                     |
| ---------------------------- | ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`                       | Yes                                | The campaign's name                                                                                                                                                                                                                                                                                                                                             |
| `url`                        | Yes                                | The base URL that will be used to generate affiliate links for the campaign                                                                                                                                                                                                                                                                                     |
| `private`                    | No                                 | `true` if the campaign should be invite-only, `false` if it should be open to the public.  (Default: `false`)                                                                                                                                                                                                                                                   |
| `reward_type`                | Yes                                | The type of reward associated with this campaign - `percent` or `amount`                                                                                                                                                                                                                                                                                        |
| `commission_percent`         | Yes, if `reward_type` is `percent` | The commission percentage for this campaign                                                                                                                                                                                                                                                                                                                     |
| `commission_amount_cents`    | Yes, if `reward_type` is `amount`  | The amount of the fixed commission for this campaign in cents                                                                                                                                                                                                                                                                                                   |
| `commission_amount_currency` | Yes, if `reward_type` is `amount`  | <p>ISO currency code in which the fixed commission for this campaign is denominated.<br>Fixed commissions can be defined in any currency, but they will be converted to and displayed in your company's display currency when awarded.</p>                                                                                                                      |
| `minimum_payout_cents`       | No                                 | The minimum amount of cumulative commissions required for an affiliate to receive a payout in cents denominated in your company's display currency. (Default: `0`)                                                                                                                                                                                              |
| `stripe_coupon_id`           | No                                 | <p>The ID of the Stripe coupon associated with this campaign, used for <a href="https://help.rewardful.com/en/articles/3024552-double-sided-incentives">double-sided incentives</a>.<br>Since this feature is only enabled for customers on our Growth and Enterprise plans, attempts by other subscribers to set a value for this with result in an error.</p> |

### Example

```bash
curl --request POST \
  --url https://api.getrewardful.com/v1/campaigns \
  -u YOUR_API_SECRET: \
  -d "name=Special Friends of Rewardful" \
  -d url=https://rewardful.com \
  -d private=true \
  -d reward_type=percent \
  -d commission_percent=50.0 \
  -d minimum_payout_cents=5000
```

## Response

{% tabs %}
{% tab title="Success" %}

| Response code | Body                                                                                                |
| ------------- | --------------------------------------------------------------------------------------------------- |
| 200           | A [campaign object](https://developers.rewardful.com/rest-api/campaigns/the-campaign-object) (JSON) |
| {% endtab %}  |                                                                                                     |

{% tab title="Failures" %}

### Invalid parameters

| Response code | Body                                      |
| ------------- | ----------------------------------------- |
| `422`         | JSON object describing validation errors. |

```javascript
{
  "error": "Could not create campaign.",
  "details": ["Name can't be blank"]
}
```

### Authentication failure

| Response code | Body                                       |
| ------------- | ------------------------------------------ |
| `401`         | Description of the authentication failure. |

```javascript
{  "error": "Invalid API Secret." }
```

{% endtab %}
{% endtabs %}
