---
title: "Enable donor platform"
description: "Enable the donor platform for a given child account."
canonical: https://www.charitips.com/docs/api-reference/enable-donor-platform
---

# Enable donor platform

`POST /v1/accounts/{accountId}/donor-platform`

Enable the donor platform for a given child account. Restricted to platform accounts

**Authentication**: Bearer access token.

## Parameters

- `accountId` (string, required)

## Body

- `authSchemes` (string): Authentication schemes allowed for the donor platform. One of `GOOGLE`, `EMAIL`, `API`.

## Errors

- 400 `Budget is required for FIXED_AMOUNT campaigns`: Set `budget`, in cents, when amountType is FIXED_AMOUNT. See https://www.charitips.com/docs/api-reference/create-campaign.md.
- 400 `INCLUDED fee type not supported`: Enabling the donor platform creates a spontaneous donations campaign from a Charitips template, and that campaign was refused. Nothing in your request causes it: contact us. See https://www.charitips.com/docs/api-reference/enable-donor-platform.md.
- 400 `Public campaigns must be both FIXED_AMOUNT and DISTRIBUTION campaigns`: A PUBLIC campaign is a vote on a fixed budget: set amountType FIXED_AMOUNT and donationType DISTRIBUTION, or keep it PRIVATE. See https://www.charitips.com/docs/api-reference/create-campaign.md.
- 400 `DISTRIBUTION campaigns must also be FIXED_AMOUNT campaigns`: A DISTRIBUTION campaign shares a fixed budget: set amountType to FIXED_AMOUNT and a budget. See https://www.charitips.com/docs/api-reference/create-campaign.md.
- 400 `givingTarget is only supported for fundraising campaigns`: Enabling the donor platform creates a spontaneous donations campaign from a Charitips template, and that campaign was refused. Nothing in your request causes it: contact us. See https://www.charitips.com/docs/api-reference/enable-donor-platform.md.
- 400 `Only one of <givingType> campaigns is supported`: Enabling the donor platform creates a spontaneous donations campaign from a Charitips template, and that campaign was refused. Nothing in your request causes it: contact us. See https://www.charitips.com/docs/api-reference/enable-donor-platform.md.
- 400 `A field is missing, has the wrong type, or is not part of the request schema.`: `message` lists every problem. Unknown fields are rejected, not ignored: remove them rather than sending extra data. See https://www.charitips.com/docs/api-reference/errors.md.
- 401 `Unauthorized`: The access token is missing, expired or invalid. Create a new one with your client id and secret, send it as `Authorization: Bearer <accessToken>`, then retry once. Sandbox tokens only work on api.sandbox.charitips.com. See https://www.charitips.com/docs/get-started/authentication.md.
- 402 `Plan upgrade required`: Your plan does not include this feature. Upgrade the plan from the dashboard, then retry. See https://www.charitips.com/docs/overview/plans.md.
- 403 `Forbidden`: Your credentials cannot perform this action on this resource. An id from another account never answers 403: it is treated as unknown, with a 404 in the path or a 400 `Bad Request` in the body or the query. See https://www.charitips.com/docs/api-reference/errors.md.
- 403 `Account closed`: The account behind these credentials is closed: no token is issued and every call is refused, reads included. Contact Charitips to reopen it. See https://www.charitips.com/docs/api-reference/troubleshooting.md#calls-answer-403-account-not-active-account-not-validated-or-account-closed.
- 404 `Not Found`: No resource with this id on your account and environment. An id that belongs to another account answers 404 too when it is in the path. Ids from the sandbox do not exist in production. See https://www.charitips.com/docs/get-started/sandbox.md.
- 409 `Slug already used`: Another campaign of your account already uses this `slug`. Pick another one. See https://www.charitips.com/docs/api-reference/errors.md.

## Example

```bash
curl -X POST https://api.sandbox.charitips.com/v1/accounts/<accountId>/donor-platform \
  -H "Authorization: Bearer $CHARITIPS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "authSchemes": [
      "EMAIL",
      "API"
    ]
  }'
```

```javascript
const response = await fetch('https://api.sandbox.charitips.com/v1/accounts/<accountId>/donor-platform', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.CHARITIPS_TOKEN}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "authSchemes": [
      "EMAIL",
      "API"
    ]
  }),
});
if (!response.ok) throw new Error(`${response.status} ${await response.text()}`);
```

```python
import os, requests

response = requests.post(
    "https://api.sandbox.charitips.com/v1/accounts/<accountId>/donor-platform",
    headers={"Authorization": f"Bearer {os.environ['CHARITIPS_TOKEN']}"},
    json={
      "authSchemes": [
        "EMAIL",
        "API"
      ]
    },
)
response.raise_for_status()
```

## Response example (201, placeholder values)

```json
{}
```
