REST API

Exchange data with Fundraise Up using REST API.

Introduction

 
Link copied

We developed the Fundraise Up API to give you better control over your fundraising data. With this API, you can process donations collected from non-digital channels through your Fundraise Up account, combining them with your online donations. You can also access your data to ensure your CRM or other systems are always up to date with your fundraising activity.

The API lets you work with four resources: Donations, Recurring plans, Supporters, and Events. You can export data for all these resources to your systems. For Donations and Recurring plans, you can also create and update them, but updates are only allowed within 24 hours of their creation.

Key features

 
Link copied
  • Architecture: Built on REST principles.
  • URLs: Provides predictable resource-oriented URLs.
  • Requests: Accepts JSON-encoded request bodies with Content-Type: application/json header.
  • Responses: Returns JSON-encoded responses.
  • Standards: Uses standard HTTP response codes, authentication, and verbs.

Donations and recurring plans that are created using the API will have an “API” donation source and can be found using the “API” source filter in the Dashboard.

This version of the API supports credit cards as the only payment method.

Use cases

 
Link copied

There are a variety of use cases where you can integrate our API into your fundraising flow. In particular, you can use our API for:

  • Ticketing and events
  • Face-to-face fundraising
  • Direct mail campaigns
  • Telefundraising
  • Fundraising galas and dinners
  • Analytics integrations

API key

 
Link copied

To use the Fundraise Up API, you need an API key. Go to Dashboard > Settings > API keys and click Create API key. You can create multiple keys for the same account.

Only users with the Organization Administrator role can perform this action.

You will only see the generated API key once. Copy it and save it safely. Do not make your API key public anywhere.

Name

 
Link copied

Enter a name for your key that will be displayed on the Dashboard. This is a required field.

You can create multiple keys with the same name and edit them later. To edit a key, click the three-dot menu next to it on the API keys page.

Permissions

 
Link copied

When you create an API key, choose its permissions: Retrieve donation data from Fundraise Up, Create new donations in our system, or both. You must select at least one option. You can edit the permissions later by clicking the three-dot menu next to the key on the API keys page.

If you're using a third-party provider to manage your donations, they must have permission to create Payment Method entities in the same Stripe account as Fundraise Up.

API key management and test mode

 
Link copied

You can create a key to use for either live mode or test data. Using the Fundraise Up API in test mode doesn’t affect your live data or interact with the banking networks.

Test mode keys have the prefix test_. Live mode keys have no prefix.

Your key will be activated immediately. The key does not expire. To delete a key, click a three-dot menu in the list, and then click Remove.

If you suspect that your API key has been compromised, delete it as soon as possible and generate a new key.

Authentication

 
Link copied

Authenticate to the API using HTTP Bearer authentication. Include your API key in the Authorization header like this: curl -H "Authorization: Bearer test_…".

Ensure that all API requests are made over HTTPS. Requests made over HTTP will not be accepted. Requests without proper authentication will also be rejected.

Parent accounts and subaccounts

 
Link copied

Each API key allows you to create donations only for the account to which it belongs. Parent accounts cannot create donations for subaccounts using their parent API key. To create donations for a subaccount, you need to generate an API key within that specific subaccount and use it.

However, the parent account can still view and manage all API keys, including those for subaccounts. Additionally, a parent account’s API key can export data for both the parent account and its subaccounts. This makes it easy to keep track of both API key activity and export data across the parent account and its subaccounts.

Rate limits

 
Link copied

To maintain stability and manage server load, the Fundraise Up API has safeguards in place to handle sudden spikes in traffic.

API rate limits: 8 requests per second, 128 requests per minute.

If you exceed these limits, you will receive a 429 Too Many Requests error.

Please avoid generating excessive traffic. To prevent abuse, we may impose stricter limits if necessary.

Errors

 
Link copied

Fundraise Up uses standard HTTP response codes to indicate the outcome of an API request:

  • 2xx codes indicate successful requests.
  • 4xx codes indicate client-side errors, such as missing parameters or failed charges.
  • 5xx codes, which are rare, indicate server-side issues with Fundraise Up.

Certain 4xx errors, such as a declined card, will include an error code with a brief explanation.

HTTP status codes

 
Link copied
Code Status Explanation
200 OK Everything worked as expected.
400 Bad Request The request was invalid, typically due to a missing required parameter.
401 Unauthorized No valid API key provided.
403 Forbidden The API key doesn’t have permissions to perform the request.
404 Not Found The requested resource doesn’t exist.
409 Conflict The request could not be completed due to a conflict with the current state of the resource. This usually indicates a concurrency issue.
429 Too Many Requests Too many requests hit the API too fast. We recommend an exponential backoff of your requests.
500, 502, 503, 504 Server Errors Something went wrong on the Fundraise Up side. (These are rare.)

Attributes

 
Link copied
  • code: nullable string. Short error code for some errors that can be handled programmatically.
  • message: nullable string. Human-readable error description.
  • parameter: nullable string. Parameter associated with the error.
  • stripe_error: nullable dictionary. Stripe-specific error details (see Stripe API documentation.)

Error codes

 
Link copied
Error code Explanation
tokens_rate_limit_exceeded Too many API tokens used within a time period.
requests_rate_limit_exceeded Organization has reached the limit for API requests per period.
stripe_rate_limit_exceeded Too many requests made to Stripe.
stripe_error Error related to Stripe payment processing.
not_found Requested resource could not be found.
update_expired Update attempted after the allowed time period.
update_conflict The request conflicts with another request.
parameter_unexpected Unexpected parameter provided in the request.
parameter_required Required parameter is missing from the request.
parameter_invalid Parameter provided is not valid.
payment_account_required Payment account setup is necessary.

Error codes may change over time. We’ll update this article to reflect any changes.

Request IDs

 
Link copied

Each API request includes response header Request-Id with unique value.

To help us resolve issues faster, please include the Request-Id when contacting us about a specific request.

Changes in API

 
Link copied

We prioritize stability and compatibility in our API. We aim to make all changes backwards-compatible within the current version to avoid disrupting your existing workflows. If a change requires incompatibility, we will release a new API version.

Detailed information about any changes will be posted to our changelog and added to this article.

Next, explore the resources that you need to configure your Fundraise Up API integration.

Found a mistake? Is there a missing topic? Hard to read? Let us know

 

In this article