REST API resources
Learn how the Fundraise Up API works.
This article will show you how to integrate our fundraising platform with your systems through the Fundraise Up API. For detailed information on obtaining your API key, handling errors, understanding rate limits, and other essential topics, please refer to the API overview article.
The Fundraise Up API allows you to interact with the following resources:
Donations
Recurring plans
Supporters
Events
Donor Portal access links
Donor Portal recurring plan access links
You can access and export data for the first four of these resources. The API also allows you to create and update Donations
and their associated Recurring plans
, but updates are only allowed within 24 hours of creation and only for API-created donations.
Donor Portal access link
and Donor Portal recurring plan access link
resources handle automatic supporter authentication in the Donor Portal.
Currently, the only payment method supported by the API is credit card.
Base URL: https://api.fundraiseup.com
Pagination
All API endpoints that list records display them in reverse chronological order and use cursor-based navigation for browsing through the list.
To maintain consistent sorting and navigation, especially when entities have the same creation date, records are also sorted by identifier in reverse alphabetical order. This means that records are first sorted by creation date (newest to oldest), and then by identifier (Z to A).
Parameter | Type | Description |
---|---|---|
limit | optional, 10 by default | This parameter specifies the number of records to display per page, ranging from 1 to 100. |
starting_after | optional object ID | A cursor for pagination. The starting_after parameter uses an existing object ID to define your position in the list. For example, if you fetch a list of items and receive 100 results, you can use the ID of the last object in that list as the starting_after parameter in your subsequent request to retrieve the next page of results. |
ending_before | optional object ID | A cursor for pagination. The ending_before parameter uses an existing object ID to define your position in the list. For example, if you fetch a list of items and receive 100 results, you can use the ID of the first object in that list as the ending_before parameter in your subsequent request to retrieve the previous page of results. |
The parameters starting_after
and ending_before
are mutually exclusive.
List response format | Type | Description |
data | array | An array containing the entity records, paginated by any request parameters. |
has_more | boolean | Indicates whether there are more records available. For starting_after , it shows that there is a page with older records. For ending_before , it indicates that there is a page with newer records. |
Donations
The Donation
object represents a single donation. It can be either a one-time donation or an installment as part of a recurring plan.
You can create donations, update donations and associated recurring plans sourced from the API, and read donations from your account.
Endpoints:
- Create a donation: POST
/v1/donations
- Update a donation: POST
/v1/donations/:id
- Read donations: GET
/v1/donations
or GET/v1/donations/:id
Create a donation
Endpoint: POST /v1/donations
This request allows you to create either a one-time donation or a recurring plan.
To create a recurring plan, you must include a recurring_plan
object with the frequency
parameter. If the object is not provided, a one-time donation will be created.
All fields and values must meet the requirements of your campaign. Otherwise, an error will be returned.
We do not format or verify addresses and emails that were sent through the API.
Prerequisites
Make sure you have:
- A Stripe account that is connected to your Fundraise Up account and activated.
- An active campaign with a money-based payment method.
- An API key with permission to create new donations.
- Access to the Stripe API for the same Stripe account used as the Fundraise Up payment method, with the ability to create Payment Methods.
Nonprofit organizations must meet PCI compliance requirements to ensure the secure processing of payment card data. Fundraise Up complies with these standards, but if an organization or its vendor uses direct API integration with Stripe to send raw card data (such as card numbers, expiration dates, and CVV codes), that organization or vendor is responsible for meeting broader PCI DSS requirements, such as SAQ D for merchants or higher.
If using Stripe Elements, the responsibility for card data security shifts to Stripe, requiring only minimal PCI compliance validation from the organization. Vendors working with face-to-face or direct mail solutions should use Stripe Elements or maintain their own PCI compliance certification.
Parameters
null
.Parameters that are not required can be omitted. Omitted parameters will contain default values where applicable. Fields that accept null
values are marked as nullable.
campaign
string required
Campaign ID. Must belong to the account that owns the API key, otherwise an error will occur. Must be active and accept money-based donations, otherwise an error will occur.
payment_method
dictionary required
Payment method information.
payment_method.stripe
dictionary required
payment_method.stripe.id
string required
The PaymentMethod ID within the organization’s Stripe account. Card payments are the only accepted payment method.
payment_method.stripe.id
such as pm_card_visa
from the list of Stripe test cards. For more information on using test cards, see the Stripe documentation.currency
enum required
Three-letter ISO currency code, in lowercase.
Name | Code |
---|---|
US Dollar | usd |
Canadian Dollar | cad |
Euro | eur |
Afghan Afghani | afn |
Albanian Lek | all |
Algerian Dinar | dzd |
Angolan Kwanza | aoa |
Argentine Peso | ars |
Armenian Dram | amd |
Aruban Florin | awg |
Australian Dollar | aud |
Azerbaijani Manat | azn |
Bahraini Dinar | bhd |
Bangladeshi Taka | bdt |
Barbadian Dollar | bbd |
Belarusian Ruble | byn |
Belize Dollar | bzd |
Bermudan Dollar | bmd |
Bhutanese Ngultrum | btn |
Bolivian Boliviano | bob |
Bosnia-Herzegovina Convertible Mark | bam |
Botswanan Pula | bwp |
Brazilian Real | brl |
British Pound | gbp |
Brunei Dollar | bnd |
Bulgarian Lev | bgn |
Burundian Franc | bif |
Cape Verdean Escudo | cve |
CFP Franc | xpf |
Central African CFA Franc | xaf |
Chilean Peso | clp |
Chinese Yuan | cny |
Colombian Peso | cop |
Comorian Franc | kmf |
Congolese Franc | cdf |
Costa Rican Colón | crc |
Croatian Kuna | hrk |
Czech Koruna | czk |
Danish Krone | dkk |
Djiboutian Franc | djf |
Dominican Peso | dop |
East Caribbean Dollar | xcd |
Egyptian Pound | egp |
Ethiopian Birr | etb |
Falkland Islands Pound | fkp |
Fijian Dollar | fjd |
Gambian Dalasi | gmd |
Georgian Lari | gel |
Ghanaian Cedi | ghs |
Gibraltar Pound | gip |
Guatemalan Quetzal | gtq |
Guinean Franc | gnf |
Guyanaese Dollar | gyd |
Haitian Gourde | htg |
Honduran Lempira | hnl |
Hong Kong Dollar | hkd |
Hungarian Forint | huf |
Icelandic Króna | isk |
Indian Rupee | inr |
Indonesian Rupiah | idr |
Israeli New Shekel | ils |
Jamaican Dollar | jmd |
Japanese Yen | jpy |
Jordanian Dinar | jod |
Kazakhstani Tenge | kzt |
Kenyan Shilling | kes |
Kyrgystani Som | kgs |
Laotian Kip | lak |
Lebanese Pound | lbp |
Lesotho Loti | lsl |
Liberian Dollar | lrd |
Macedonian Denar | mkd |
Malagasy Ariary | mga |
Malawian Kwacha | mwk |
Malaysian Ringgit | myr |
Maldivian Rufiyaa | mvr |
Mauritian Rupee | mur |
Mexican Peso | mxn |
Moldovan Leu | mdl |
Mongolian Tugrik | mnt |
Moroccan Dirham | mad |
Mozambican Metical | mzn |
Myanmar Kyat | mmk |
Namibian Dollar | nad |
Nepalese Rupee | npr |
Netherlands Antillean Guilder | ang |
New Zealand Dollar | nzd |
Nicaraguan Córdoba | nio |
Nigerian Naira | ngn |
Norwegian Krone | nok |
Omani Rial | omr |
Pakistani Rupee | pkr |
Panamanian Balboa | pab |
Papua New Guinean Kina | pgk |
Paraguayan Guarani | pyg |
Peruvian Sol | pen |
Philippine Peso | php |
Polish Zloty | pln |
Qatari Riyal | qar |
Romanian Leu | ron |
Russian Ruble | rub |
Rwandan Franc | rwf |
Saudi Riyal | sar |
Serbian Dinar | rsd |
Seychellois Rupee | scr |
Sierra Leonean Leone (1964–2022) | sll |
Singapore Dollar | sgd |
Solomon Islands Dollar | sbd |
South African Rand | zar |
South Korean Won | krw |
Sri Lankan Rupee | lkr |
St. Helena Pound | shp |
Sudanese Pound | sdg |
Surinamese Dollar | srd |
Swedish Krona | sek |
Swiss Franc | chf |
Syrian Pound | syp |
Tajikistani Somoni | tjs |
Tanzanian Shilling | tzs |
Thai Baht | thb |
Tongan Paʻanga | top |
Trinidad and Tobago Dollar | ttd |
Tunisian Dinar | tnd |
Turkish Lira | try |
Turkmenistani Manat | tmt |
Ugandan Shilling | ugx |
Ukrainian Hryvnia | uah |
United Arab Emirates Dirham | aed |
Uruguayan Peso | uyu |
Uzbekistani Som | uzs |
Vanuatu Vatu | vuv |
Venezuelan Bolívar | vef |
Vietnamese Dong | vnd |
West African CFA Franc | xof |
Yemeni Rial | yer |
Zambian Kwacha | zmw |
amount
string required
Donation amount in the selected currency. Must be a decimal string in the format {NNN}[.nn]
. Examples: 9.99 (for USD), 200 (for JPY).
The amount must be greater than $1 or the equivalent in other currencies. If a minimum amount is set for the campaign, the donation must meet or exceed that value.
supporter
dictionary required
Supporter's personal data.
supporter.first_name
string required
Up to 256 characters.
supporter.last_name
string required
Up to 256 characters.
supporter.phone
nullable string
Up to 20 characters.
Required if the campaign is configured to require the supporter to provide their phone number.
supporter.address
nullable dictionary
Required if the campaign is configured to require the supporter to provide their mailing address. Also affected by the minimum amount required.
supporter.address.country
string required
Two-letter country code, lowercase.
supporter.address.region
nullable string required for some countries
Up to 64 characters.
Required for all countries except gb
(United Kingdom), il
(Israel), nl
(Netherlands), fr
(France), de
(Germany). Can be: region, state, or province.
supporter.address.city
string required
Up to 64 characters.
supporter.address.line1
string required
Up to 256 characters.
supporter.address.line2
nullable string
Up to 256 characters.
supporter.address.postal_code
string required
Up to 10 characters.
supporter.title
nullable enum
Supporter’s title, in lowercase. Available options depend on the campaign settings. Available for the following countries:
- United Kingdom: mr, mrs, miss, ms, mx, sir, dr, rev, dcn, fr, br, sr, prof
- France: m, mme, mlle, autre
- Germany: herr, frau, prof, dr
- Austria: herr, frau
- Canada (French): m, mme, mlle, autre
supporter.email
nullable string
Up to 254 characters.
supporter.employer
nullable dictionary
Only allowed if employer matching is enabled for the campaign.
supporter.employer.name
string required
Up to 64 characters.
comment
nullable string
Up to 256 characters.
recurring_plan
dictionary
Recurring plan parameters.
This must be specified if the campaign settings in the Frequency section do not include “Once” as an option for either Default Frequency or Second Frequency.
recurring_plan.frequency
enum required
Can be: daily
, weekly
, biweekly
, every4weeks
, monthly
, bimonthly
, quarterly
, semiannual
, or annual
.
Must match campaign settings for default or additional frequency.
skip_thank_you_email
boolean
false
(default) will send a donation receipt email for the first installment.
true
will prevent the donation receipt email from being sent for the first installment.
Available for recurring plans only.
To use this parameter, you must also include the email
parameter.
Sending this parameter for a one-time donation will return an error.
questions
array of dictionaries
Required if there are required questions in the campaign settings.
Each item must include an id
and, depending on the question type, one of the following fields: text
, options
, or checked
.
questions.id
string required
Question ID located in Settings > Questions.
questions.text
string
Up to 256 characters.
Required for questions with types “Text box,” “Text line,” “Select one option,” or “Dropdown menu.”
questions.options
array of strings
Required for questions with the type “Multiple checkboxes.”
questions.checked
boolean
Required for questions with the type “Single checkbox.”
designation
nullable string
Designation ID located in Settings > Designations.
If a default designation exists in the campaign settings and no value is provided, the default designation will be applied.
custom_fields
array of dictionaries
Missing fields will be populated with default non-blank values from the campaign settings.
custom_fields.name
string required
Up to 256 characters.
custom_fields.value
string required
Up to 256 characters.
One-time donation example (minimum number of required fields)
1{
2 "campaign": "FUNBRRPPNWQ",
3 "payment_method": {
4 "stripe": {
5 "id": "pm_card_visa"
6 }
7 },
8 "currency": "usd",
9 "amount": "9.99",
10 "supporter": {
11 "first_name": "John",
12 "last_name": "Doe"
13 }
14}
This example only works if the campaign does not have any additional required fields set up. Depending on your campaign configuration, you may also need to provide required fields such as address, title, designation, and questions. Please check your campaign settings to ensure that all required fields are included.
Recurring donation example (minimum number of required fields)
To create a recurring plan, include the recurring_plan
object with the required frequency
parameter.
1{
2 "campaign": "FUNBRRPPNWQ",
3 "payment_method": {
4 "stripe": {
5 "id": "pm_card_visa"
6 }
7 },
8 "currency": "usd",
9 "amount": "9.99",
10 "supporter": {
11 "first_name": "John",
12 "last_name": "Doe"
13 },
14 "recurring_plan": {
15 "frequency": "monthly"
16 }
17}
This example only works if the campaign does not have any additional required fields set up. Depending on your campaign configuration, you may also need to provide required fields such as address, title, designation, and questions. Please check your campaign settings to ensure that all required fields are included.
Full request example
This example shows a request for a campaign that includes all available parameters, such as supporter details, comment, designation, questions, and custom fields.
1{
2 "campaign": "FUNBRRPPNWQ",
3 "payment_method": {
4 "stripe": {
5 "id": "pm_card_visa"
6 }
7 },
8 "currency": "usd",
9 "amount": "9.99",
10 "recurring_plan": {
11 "frequency": "daily"
12 },
13 "supporter": {
14 "first_name": "John",
15 "last_name": "Doe",
16 "title": "mr",
17 "email": "john.doe@example.com",
18 "phone": "7056789834",
19 "address": {
20 "line1": "Street",
21 "line2": "House",
22 "city": "City",
23 "region": "CA",
24 "postal_code": "100100",
25 "country": "us"
26 },
27 "employer": {
28 "name": "Fundraise Up"
29 }
30 },
31 "comment": "Comment",
32 "designation": "ESTPTE7U",
33 "questions": [
34 {
35 "id": "Q1",
36 "text": "Text"
37 },
38 {
39 "id": "Q2",
40 "options": [
41 "Checkbox 1",
42 "Checkbox 2"
43 ]
44 },
45 {
46 "id": "Q3",
47 "checked": false
48 }
49 ],
50 "custom_fields": [
51 {
52 "name": "a",
53 "value": "A"
54 },
55 {
56 "name": "b",
57 "value": "B"
58 }
59 ]
60}
Response
On success, the API returns the donation object. If the parameters are invalid, the call will return an error.
1{
2 "id": "DFQLCFEP",
3 "created_at": "2024-11-10T15:49:12.667Z",
4 "account": {
5 "id": "HRMEIGNS",
6 "code": "123423",
7 "name": "Helping Hands"
8 },
9 "livemode": true,
10 "amount": "9.99",
11 "amount_in_default_currency": "9.99",
12 "amount_before_fees_covered": "9.99",
13 "amount_before_fees_covered_in_default_currency": "9.99",
14 "anonymous": false,
15 "campaign": {
16 "id": "FUNBRRPPNWQ",
17 "code": "GENERAL",
18 "name": "Campaign Name"
19 },
20 "comment": "Comment",
21 "currency": "usd",
22 "custom_fields": [
23 {
24 "name": "a",
25 "value": "A"
26 },
27 {
28 "name": "b",
29 "value": "B"
30 }
31 ],
32 "device": {
33 "type": "desktop",
34 "browser": null,
35 "os": null,
36 "ip": {
37 "address": "127.0.0.1",
38 "country_name": "Spain",
39 "region": "Catalonia",
40 "city": "Barcelona"
41 }
42 },
43 "element": null,
44 "designation": {
45 "id": "ESTPTE7U",
46 "code": "DESIGNATION",
47 "name": "Designation Name"
48 },
49 "status": "succeeded",
50 "failed_at": null,
51 "succeeded_at": "2024-10-11T14:11:01.089Z",
52 "refunded_at": null,
53 "source": "api",
54 "installment": 1,
55 "recurring_plan": null,
56 "on_behalf_of": null,
57 "payment": {
58 "id": "ch_3Q8jYTKL8VnB2RtS0gQZUqoe",
59 "credit_card": {
60 "exp_month": "10",
61 "exp_year": "2025",
62 "last4": "4242"
63 },
64 "email": null,
65 "error_message": null,
66 "method": "credit_card",
67 "processor": "stripe"
68 },
69 "payout": {
70 "amount": "9.20",
71 "amount_in_default_currency": "9.20",
72 "currency": "usd"
73 },
74 "platform_fee": {
75 "amount": "0.20",
76 "amount_in_default_currency": "0.20",
77 "currency": "usd"
78 },
79 "processing_fee": {
80 "amount": "0.59",
81 "amount_in_default_currency": "0.59",
82 "currency": "usd"
83 },
84 "supporter": {
85 "id": "SWYRPXNQ",
86 "email": "john.doe@example.com",
87 "first_name": "John",
88 "last_name": "Doe",
89 "title": "mr",
90 "phone": "7056789834",
91 "employer": {
92 "name": "Fundraise Up"
93 },
94 "address": {
95 "line1": "Street",
96 "line2": "House",
97 "city": "City",
98 "region": "CA",
99 "postal_code": "100100",
100 "country": "us"
101 }
102 },
103 "supporter_covered_fee": "0.00",
104 "tribute": null,
105 "fundraiser": null,
106 "questions": [
107 {
108 "id": "Q1",
109 "code": "CODE1",
110 "text": "Text"
111 },
112 {
113 "id": "Q2",
114 "code": "CODE2",
115 "options": [
116 "Checkbox 1",
117 "Checkbox 2"
118 ]
119 },
120 {
121 "id": "Q3",
122 "code": "CODE3",
123 "checked": false
124 }
125 ],
126 "utm": {
127 "source": null,
128 "campaign": null,
129 "medium": null,
130 "content": null,
131 "term": null
132 },
133 "url": null
134}
In case of an error on the Stripe side, the response will contain an error.stripe_error
object with the status
and nullable error
payload returned by Stripe.
Update a donation and associated recurring plan
Endpoint: POST v1/donations/:id
This request allows you to update the details of a donation that was made through an API call.
You can make updates to:
- Enrich data.
- Modify parameter values.
- Remove parameter values.
Donations created outside of the API, such as through the Checkout modal, Campaign Page, or Virtual Terminal, cannot be edited through the API.
The donation ID must belong to the account associated with the API key. Donations from subaccounts cannot be updated using the API key of the parent account. Attempting to do so will result in an error. To update a donation in a subaccount, you must use the API key of that subaccount.
For the update to be successful, the donation object must match the current campaign settings, otherwise the operation will fail with a validation error.
Parallel requests to update one object are not allowed and will result in an error.
Any parameters or child parameters that are not provided will remain unchanged.
A successful update will modify the donation receipt, but no emails will be sent as a result.
If you update recurring plan, the changes will apply to both the specific installment and all future installments.
Parameters
null
.Parameters that are not required may be omitted or set to undefined
. If a value is not provided or is undefined
, it will not be updated. Fields that accept null
values are marked as nullable.
If the campaign is changed, all attributes will be validated to ensure they match the parameters of the target campaign. If the campaign is not changed, only the parameters specified in the request will be validated against the current campaign settings.
campaign
string
Campaign ID. Must belong to the account that owns the API key, otherwise an error will occur. Must be active and accept money-based donations, otherwise an error will occur.
supporter
dictionary
Supporter's personal data. Only the specified parameters are updated, the others remain unchanged. This means that you can send an object with only some fields, because all parameters are optional.
supporter.first_name
string
Up to 256 characters.
supporter.last_name
string
Up to 256 characters.
supporter.phone
nullable string
Up to 20 characters.
It can only be sent if the campaign setting “Ask for phone number” is enabled.
Required if the campaign is configured to require the supporter to provide their phone number.
supporter.address
nullable dictionary
It can only be sent if the campaign setting “Ask for mailing address” is enabled, taking into account the amount specified in the campaign settings that triggers the address request.
Required if the campaign is configured to require the supporter to provide their mailing address. Also affected by the minimum amount required.
To remove the address, pass null
for supporter.address
.
supporter.address.country
string
Two-letter country code, lowercase.
supporter.address.region
nullable string required for some countries
Up to 64 characters.
Required for all countries except gb
(United Kingdom), il
(Israel), nl
(Netherlands), fr
(France), de
(Germany). Can be: region, state, or province.
supporter.address.city
string
Up to 64 characters.
supporter.address.line1
string
Up to 256 characters.
supporter.address.line2
string
Up to 256 characters.
supporter.address.postal_code
string
Up to 10 characters.
supporter.title
nullable enum
Supporter’s title, in lowercase. Available options depend on the campaign settings. Available for the following countries:
United Kingdom | France | Germany | Austria | Canada (French) |
---|---|---|---|---|
mr | m | herr | herr | m |
mrs | mme | frau | frau | mme |
miss | mlle | prof | mlle | |
ms | autre | dr | autre | |
mx | ||||
sir | ||||
dr | ||||
rev | ||||
dcn | ||||
fr | ||||
br | ||||
sr | ||||
prof |
supporter.email
nullable string
Up to 254 characters.
supporter.employer
nullable dictionary
supporter.employer.name
string
Up to 64 characters.
comment
nullable string
Up to 256 characters.
questions
array of dictionaries
Required if there are required questions in the campaign settings.
Erases all previous answers to all questions and sets the answers to the current values.
questions.id
string required
Question ID located in Settings > Questions.
questions.text
string
Up to 256 characters.
Required for questions with types “Text box,” “Text line,” “Select one option,” or “Dropdown menu.”
questions.options
array of strings
Required for questions with the type “Multiple checkboxes.”
questions.checked
boolean
Required for questions with the type “Single checkbox.”
designation
nullable string
Designation ID located in Settings > Designations.
If a default designation exists in the campaign settings and no value is provided, the default designation will be applied.
custom_fields
array of dictionaries
Erases all previous values for all fields and sets the values for the provided keys.
Missing fields will be populated with default non-blank values from the campaign settings.
custom_fields.name
string required
Up to 256 characters.
custom_fields.value
string required
Up to 256 characters.
Example
1{
2 "campaign": "FUNBRRPPNWQ",
3 "supporter": {
4 "first_name": "John",
5 "last_name": "Doe",
6 "title": "mr",
7 "email": "john.doe@example.com",
8 "phone": "7056789834",
9 "address": {
10 "line1": "Street",
11 "line2": "House",
12 "city": "City",
13 "region": "Region",
14 "postal_code": "100100",
15 "country": "us"
16 },
17 "employer": {
18 "name": "Fundraise Up"
19 }
20 },
21 "comment": "Comment",
22 "designation": "ESTPTE7U",
23 "questions": [
24 {
25 "id": "Q1",
26 "text": "Text"
27 },
28 {
29 "id": "Q2",
30 "options": [
31 "Checkbox 1",
32 "Checkbox 2"
33 ]
34 },
35 {
36 "id": "Q3",
37 "checked": false
38 }
39 ],
40 "custom_fields": [
41 {
42 "name": "a",
43 "value": "A"
44 },
45 {
46 "name": "b",
47 "value": "B"
48 }
49 ]
50}
Response
Returns the donation if the update was successful. If the update parameters are invalid, the call returns an error.
1{
2 "id": "DFQLCFEP",
3 "created_at": "2024-11-10T15:49:12.667Z",
4 "account": {
5 "id": "HRMEIGNS",
6 "code": "911",
7 "name": "Helping Hands"
8 },
9 "livemode": true,
10 "amount": "9.99",
11 "amount_in_default_currency": "9.99",
12 "amount_before_fees_covered": "8.99",
13 "amount_before_fees_covered_in_default_currency": "8.99",
14 "anonymous": false,
15 "campaign": {
16 "id": "FUNUMQTSTYD",
17 "code": "GENERAL",
18 "name": "Campaign Name"
19 },
20 "comment": "Comment",
21 "currency": "usd",
22 "custom_fields": [
23 {
24 "name": "a",
25 "value": "A"
26 },
27 {
28 "name": "b",
29 "value": "B"
30 }
31 ],
32 "device": {
33 "type": "desktop",
34 "browser": null,
35 "os": null,
36 "ip": {
37 "address": "127.0.0.1",
38 "country_name": "Spain",
39 "region": "Catalonia",
40 "city": "Barcelona"
41 }
42 },
43 "element": {
44 "id": "XXCKSMLL",
45 "type": "donation_form",
46 "name": "Element Name"
47 },
48 "designation": [
49 {
50 "id": "EW83VF95",
51 "code": "DESIGNATION",
52 "name": "Designation Name"
53 }
54 ],
55 "status": "refunded",
56 "failed_at": null,
57 "succeeded_at": "2024-11-11T15:49:12.667Z",
58 "refunded_at": "2024-11-11T15:49:12.667Z",
59 "source": "api",
60 "installment": 1,
61 "recurring_plan": {
62 "id": "RVSHJNPJ",
63 "status": "active",
64 "frequency": "monthly"
65 },
66 "on_behalf_of": "Humanity",
67 "payment": {
68 "id": "ch_12345678910abcdefghijk",
69 "credit_card": {
70 "exp_month": "01",
71 "exp_year": "2024",
72 "last4": "1111"
73 },
74 "email": "paypalemail@example.com",
75 "error_message": null,
76 "method": "credit_card",
77 "processor": "stripe"
78 },
79 "payout": {
80 "amount": "1.01",
81 "amount_in_default_currency": "1.01",
82 "currency": "usd"
83 },
84 "platform_fee": {
85 "amount": "1.01",
86 "amount_in_default_currency": "1.01",
87 "currency": "usd"
88 },
89 "processing_fee": {
90 "amount": "1.01",
91 "amount_in_default_currency": "1.01",
92 "currency": "usd"
93 },
94 "supporter": {
95 "id": "SWYRPXNQ",
96 "email": null,
97 "first_name": "John",
98 "last_name": "Doe",
99 "title": null,
100 "phone": null,
101 "employer": {
102 "name": "Fundraise Up"
103 },
104 "address": {
105 "country": "us",
106 "line1": "Street",
107 "line2": "House",
108 "city": "City",
109 "region": "CA",
110 "postal_code": "100100"
111 }
112 },
113 "supporter_covered_fee": "1.01",
114 "tribute": {
115 "type": "in_honor",
116 "honoree": "Fundraise Up",
117 "from": "Grateful supporter",
118 "message": "All the best!",
119 "sharing": {
120 "type": "address",
121 "recipient": {
122 "address": {
123 "country": "us",
124 "line1": "Street",
125 "line2": "House",
126 "city": "City",
127 "region": "Region",
128 "postal_code": "100100"
129 },
130 "title": "mr",
131 "first_name": "John",
132 "last_name": "Doe"
133 }
134 }
135 },
136 "fundraiser": {
137 "id": "FUNUMQTSTYD",
138 "name": "Awesome Fundraiser"
139 },
140 "questions": [
141 {
142 "id": "Q1",
143 "code": "CODE1",
144 "checked": true
145 },
146 {
147 "id": "Q2",
148 "code": "CODE2",
149 "text": "answer"
150 },
151 {
152 "id": "Q3",
153 "code": "CODE3",
154 "options": [
155 "answer1",
156 "answer2"
157 ]
158 }
159 ],
160 "utm": {
161 "source": "web",
162 "campaign": "summer",
163 "medium": "email",
164 "content": null,
165 "term": null
166 },
167 "url": "https://fundraiseup.com"
168}
Read donations
Endpoints:
- GET
/v1/donations
- GET
/v1/donations/:id
These requests let you access donation records in your Fundraise Up account. Note that we do not support webhooks.
The supporter data will be displayed as it appears on the Donation page in your Dashboard.
Attributes
id
string
Unique identifier for the object.
created_at
timestamp
The time at which the object was created.
comment
nullable string
account
dictionary
Organization that created the donation.
account.id
string
Unique organization ID.
account.code
nullable string
Organization code.
account.name
string
Organization name.
anonymous
boolean
Anonymous donation.
livemode
boolean
Test mode indicator. true
for live mode donations, false
for test mode donations.
status
enum
Can be: succeeded
, scheduled
, pending
, retrying
, refunded
, or failed
.
amount
string
Amount in donation’s currency.
amount_in_default_currency
string
Amount in the organization’s default currency at the time of the donation.
amount_before_fees_covered
string
Amount before fees covered by supporter.
amount_before_fees_covered_in_default_currency
string
Amount before fees covered by supporter in organization’s default currency at the time of the donation.
campaign
dictionary
Campaign to which the donation belongs.
campaign.id
string
Unique campaign identifier.
campaign.code
nullable string
campaign.name
string
designation
nullable dictionary
Designation to which the donation belongs.
designation.id
string
Unique designation identifier.
designation.code
nullable string
designation.name
nullable string
element
nullable dictionary
Element through which the donation was made.
element.id
string
Unique element identifier.
element.type
enum
element.name
string
currency
enum
Three-letter ISO currency code, lowercase.
custom_fields
array of dictionaries
Populated custom fields listed in the campaign settings.
custom_fields.name
string
custom_fields.value
string
device
dictionary
Device details.
device.type
nullable enum
Can be: desktop
, mobile
, tablet
, or null
.
device.browser
nullable string
device.os
nullable string
device.ip
dictionary
device.ip.address
nullable string
device.ip.country_name
nullable string
device.ip.region
nullable string
device.ip.city
nullable string
installment
nullable string
null
for one-time donations. 1+
for donations with recurring plan.
recurring_plan
nullable dictionary
Recurring plan attributes, if any.
recurring_plan.id
string
Unique recurring identifier.
recurring_plan.status
enum
Can be: active
, scheduled
, paused
, retrying
, completed
, failed
, or canceled
recurring_plan.frequency
enum
Can be: daily
, weekly
, biweekly
, every4weeks
, monthly
, bimonthly
, quarterly
, semiannual
, or annual
.
refunded_at
nullable timestamp
The time at which the donation was refunded.
succeeded_at
nullable timestamp
The time at which the donation succeeded.
failed_at
nullable timestamp
The time at which the donation failed.
fundraiser
nullable dictionary
Fundraiser, if any.
fundraiser.id
string
Unique fundraiser ID.
fundraiser.name
string
on_behalf_of
nullable string
payment
dictionary
payment.id
nullable string
For PayPal: Capture ID.
For Stripe: Charge ID or Payment Intent ID.
For other processors: payment ID.
payment.email
nullable string
Email from payment method. Example: PayPal email.
payment.credit_card
nullable dictionary
Credit card details.
payment.credit_card.exp_month
nullable string
Two-symbol string. Examples: 01
, 12
.
payment.credit_card.exp_year
nullable string
Four-symbol string. Example: 2024
.
payment.credit_card.last4
nullable string
Last four digits of the credit card number.
error_message
nullable string
Returns the latest payment error message only if the status is failed
or retrying
. Otherwise, returns null
.
method
enum
Payment method, in lowercase underscore. Examples: ach
, apple_pay
, google_pay
, click_to_pay
, paypal
, venmo
, becs_direct_debit
, bacs_direct_debit
, credit_card
, pad
, sepa_direct_debit
, ideal
, crypto
, stock
.
processor
enum
Payment processor, in lowercase. Examples: stripe
, paypal
, gemini
, manual_brokerage
, coinbase_commerce
(deprecated).
payout
dictionary
Payout details.
payout.amount
string
Amount in donation’s currency.
payout.amount_in_default_currency
string
Amount in organization’s default currency, at donation time.
payout.currency
enum
Three-letter ISO currency code, lowercase.
platform_fee
dictionary
Fundraise Up fee details.
platform_fee.amount
string
Amount in donation’s currency.
platform_fee.amount_in_default_currency
string
Amount in organization’s default currency, at donation time.
platform_fee.currency
enum
Three-letter ISO currency code, lowercase.
processing_fee
dictionary
processing_fee.amount
string
Amount in donation’s currency.
processing_fee.amount_in_default_currency
string
Amount in organization’s default currency, at the time of the donation.
processing_fee.currency
enum
Three-letter ISO currency code, lowercase.
receipt_id
string
Unique identifier for donation receipt.
supporter
dictionary
Supporter data, as it displayed on the Donation page in your Dashboard.
supporter.id
string
Unique supporter ID.
supporter.email
nullable string
supporter.first_name
nullable string
supporter.last_name
nullable string
supporter.title
nullable enum
Returns null
if the title is empty. Title options include values like mr
, mrs
, etc.
supporter.phone
nullable string
supporter.employer
nullable dictionary
supporter.employer.name
string
supporter.address
nullable dictionary
Mailing address.
supporter.address.country
enum
Two-letter country code, lowercase.
supporter.address.region
nullable string
Can refer to a region, state, or province.
supporter.address.city
nullable string
supporter.address.line1
nullable string
supporter.address.line2
nullable string
supporter.address.postal_code
nullable string
Postal/ZIP code.
language
string
Supporter’s language.
supporter_covered_fee
string
Fees covered by supporter. Decimal string.
source
enum
Donation source.
Can be: website
, campaign_page
, virtual_terminal
, recurring_migration
, api
.
tribute
nullable dictionary
tribute.id
string
tribute.type
nullable enum
Can be: in_honor
or in_memory
.
tribute.honoree
string
tribute.sharing
nullable dictionary
Sharing options.
tribute.sharing.type
enum
Sharing destination field name.
Can be: email
or address
tribute.sharing.from
string
tribute.sharing.message
nullable string
tribute.sharing.recipient
dictionary
tribute.sharing.recipient.email
nullable string
Email address for the email
sharing type.
tribute.sharing.recipient.address
nullable dictionary
Postal address for the address
sharing type.
tribute.sharing.recipient.address.country
enum
Two-letter country code, lowercase.
tribute.sharing.recipient.address.region
nullable string
Region/state/province.
tribute.sharing.recipient.address.city
string
tribute.sharing.recipient.address.line1
string
tribute.sharing.recipient.address.line2
nullable string
tribute.sharing.recipient.address.postal_code
nullable string
Postal/ZIP code.
tribute.sharing.recipient.title
nullable enum
tribute.sharing.recipient.first_name
string
tribute.sharing.recipient.last_name
string
utm
dictionary
UTM tags.
utm.source
nullable string
utm.campaign
nullable string
utm.content
nullable string
utm.medium
nullable string
utm.term
nullable string
url
nullable string
URL, from which the donation was made.
questions
array of dictionaries
questions.question
dictionary
The object contains the fields id
, code
, and one of the following fields: text
, options
, or checked
, depending on the question type.
questions.question.id
string
Unique question identifier.
questions.question.code
nullable string
questions.question.text
string
Up to 256 characters.
Answer for the question. This field is returned only for question types “Text box,” “Text line,” “Select one option,” and “Dropdown menu.”
questions.question.options
array of strings
Selected options. This field is returned only for question types “Multiple checkboxes.”
questions.question.checked
boolean
Checkbox state. This field is returned for question types “Single checkbox.”
gift_aid
nullable dictionary
An optional dictionary containing details about Gift Aid. This field is available only for organizations based in Great Britain.
claimed
boolean
Indicates whether the Gift Aid has been claimed (true
) or not (false
).
legal_text
string
The legal text associated with Gift Aid.
Example
1{
2 "id": "DFQLCFEP",
3 "created_at": "2024-11-10T15:49:12.667Z",
4 "account": {
5 "id": "HRMEIGNS",
6 "code": "911",
7 "name": "Helping Hands"
8 },
9 "livemode": true,
10 "amount": "9.99",
11 "amount_in_default_currency": "9.99",
12 "amount_before_fees_covered": "8.99",
13 "amount_before_fees_covered_in_default_currency": "8.99",
14 "anonymous": false,
15 "campaign": {
16 "id": "FUNUMQTSTYD",
17 "code": "GENERAL",
18 "name": "Campaign Name"
19 },
20 "comment": "Comment",
21 "currency": "usd",
22 "custom_fields": [
23 {
24 "name": "a",
25 "value": "A"
26 },
27 {
28 "name": "b",
29 "value": "B"
30 }
31 ],
32 "device": {
33 "type": "desktop",
34 "browser": null,
35 "os": null,
36 "ip": {
37 "address": "127.0.0.1",
38 "country_name": "Spain",
39 "region": "Catalonia",
40 "city": "Barcelona"
41 }
42 },
43 "element": {
44 "id": "XXCKSMLL",
45 "type": "donation_form",
46 "name": "Element Name"
47 },
48 "designation": [
49 {
50 "id": "EW83VF95",
51 "code": "DESIGNATION",
52 "name": "Designation Name"
53 }
54 ],
55 "status": "refunded",
56 "failed_at": null,
57 "succeeded_at": "2024-11-11T15:49:12.667Z",
58 "refunded_at": "2024-11-11T15:49:12.667Z",
59 "source": "api",
60 "installment": 1,
61 "recurring_plan": {
62 "id": "RVSHJNPJ",
63 "status": "active",
64 "frequency": "monthly"
65 },
66 "on_behalf_of": "Humanity",
67 "payment": {
68 "id": "ch_12345678910abcdefghijk",
69 "credit_card": {
70 "exp_month": "01",
71 "exp_year": "2024",
72 "last4": "1111"
73 },
74 "email": "paypalemail@example.com",
75 "error_message": null,
76 "method": "credit_card",
77 "processor": "stripe"
78 },
79 "payout": {
80 "amount": "1.01",
81 "amount_in_default_currency": "1.01",
82 "currency": "usd"
83 },
84 "platform_fee": {
85 "amount": "1.01",
86 "amount_in_default_currency": "1.01",
87 "currency": "usd"
88 },
89 "receipt_id": "string",
90 "processing_fee": {
91 "amount": "1.01",
92 "amount_in_default_currency": "1.01",
93 "currency": "usd"
94 },
95 "supporter": {
96 "id": "SWYRPXNQ",
97 "email": null,
98 "first_name": "John",
99 "last_name": "Doe",
100 "title": null,
101 "phone": null,
102 "employer": {
103 "name": "Fundraise Up"
104 },
105 "address": {
106 "country": "us",
107 "line1": "Street",
108 "line2": "House",
109 "city": "City",
110 "region": "CA",
111 "postal_code": "100100",
112 "language": "es"
113 }
114 },
115 "supporter_covered_fee": "1.01",
116 "tribute": {
117 "type": "in_honor",
118 "honoree": "Fundraise Up",
119 "from": "Grateful supporter",
120 "message": "All the best!",
121 "sharing": {
122 "type": "address",
123 "recipient": {
124 "address": {
125 "country": "us",
126 "line1": "Street",
127 "line2": "House",
128 "city": "City",
129 "region": "Region",
130 "postal_code": "100100"
131 },
132 "title": "mr",
133 "first_name": "John",
134 "last_name": "Doe"
135 }
136 }
137 },
138 "fundraiser": {
139 "id": "FUNUMQTSTYD",
140 "name": "Awesome Fundraiser"
141 },
142 "questions": [
143 {
144 "id": "Q1",
145 "code": "CODE1",
146 "checked": true
147 },
148 {
149 "id": "Q2",
150 "code": "CODE2",
151 "text": "answer"
152 },
153 {
154 "id": "Q3",
155 "code": "CODE3",
156 "options": [
157 "answer1",
158 "answer2"
159 ]
160 }
161 ],
162 "utm": {
163 "source": "web",
164 "campaign": "summer",
165 "medium": "email",
166 "content": null,
167 "term": null
168 },
169 "url": "https://fundraiseup.com",
170 "gift_aid": {
171 "claimed": true,
172 "legal_text": "string"
173 }
174}
Recurring plans
Endpoints:
- GET
/v1/recurring_plans
- GET
/v1/recurring_plans/:id
These requests allow you to read your Fundraise Up recurring plan records. The supporter data will be displayed as it appears on the Recurring plan page in your Dashboard.
Attributes
id
string
Unique recurring plan ID.
created_at
timestamp
The time at which the object was created.
anonymous
boolean
amount
string
Amount in donation’s currency.
currency
enum
Three-letter ISO currency code, lowercase.
amount_in_default_currency
string
Amount in organization’s default currency, at the time of the donation.
amount_before_fees_covered
string
Amount before fees covered by supporter.
amount_before_fees_covered_in_default_currency
string
Amount before fees covered by supporter in organization’s default currency, at the time of the donation.
supporter_covered_fee
string
Fees covered by supporter. Decimal string.
livemode
boolean
Test mode indicator. true
for live mode donations, false
for test mode donations.
account
dictionary
Organization that created the donation.
account.id
string
Unique organization ID.
account.code
nullable string
Organization code.
account.name
string
Organization name.
campaign
dictionary
Campaign to which the donation belongs.
campaign.id
string
Unique campaign ID.
campaign.code
nullable string
campaign.name
string
designation
nullable dictionary
Designation to which the donation belongs.
designation.id
string
Unique designation identifier.
designation.code
nullable string
designation.name
nullable string
element
nullable dictionary
Element through which the donation was made.
element.id
string
Unique element ID.
element.type
enum
element.name
string
comment
nullable string
custom_fields
array of dictionaries
Populated custom fields listed in the campaign settings.
custom_fields.name
string
custom_fields.value
string
device
dictionary
Device details.
device.ip
dictionary
device.ip.address
nullable string
device.ip.country_name
nullable string
device.ip.region
nullable string
device.ip.city
nullable string
fundraiser
nullable dictionary
Fundraiser, if any.
fundraiser.id
string
Unique fundraiser ID.
fundraiser.name
string
questions
array of dictionaries
questions.question
dictionary
The object contains the fields id
, code
, and one of the following fields: text
, options
, or checked
, depending on the question type.
questions.question.id
string
Unique question identifier.
questions.question.code
nullable string
questions.question.text
string
Up to 256 characters.
Answer for the question. This field is returned only for question types “Text box,” “Text line,” “Select one option,” and “Dropdown menu.”
questions.question.options
array of strings
Selected options. This field is returned only for question types “Multiple checkboxes.”
questions.question.checked
boolean
Checkbox state. This field is returned for question types “Single checkbox.”
status
enum
Can be: active
, scheduled
, paused
, retrying
, completed
, failed
, or canceled
.
source
enum
Donation source.
Can be: website
, campaign_page
, virtual_terminal
, recurring_migration
, api
.
tribute
nullable dictionary
tribute.id
string
tribute.type
nullable enum
Can be: in_honor
or in_memory
.
tribute.honoree
string
tribute.sharing
nullable dictionary
Sharing options.
tribute.sharing.type
enum
Sharing destination field name.
Can be: email
or address
.
tribute.sharing.from
string
tribute.sharing.message
nullable string
tribute.sharing.recipient
dictionary
tribute.sharing.recipient.email
nullable string
Email address for the email
sharing type.
tribute.sharing.recipient.address
nullable dictionary
Postal address for the address
sharing type.
tribute.sharing.recipient.address.country
enum
Two-letter country code, lowercase.
tribute.sharing.recipient.address.region
nullable string
Region/state/province.
tribute.sharing.recipient.address.city
string
tribute.sharing.recipient.address.line1
string
tribute.sharing.recipient.address.line2
nullable string
tribute.sharing.recipient.address.postal_code
nullable string
Postal/ZIP code.
tribute.sharing.recipient.title
nullable enum
tribute.sharing.recipient.first_name
string
tribute.sharing.recipient.last_name
string
ended_at
nullable timestamp
Date on which the recurring plan ended.
next_installment_at
nullable timestamp
Timestamp of the next installment.
on_behalf_of
nullable string
frequency
enum
Can be: daily
, weekly
, biweekly
, every4weeks
, monthly
, bimonthly
, quarterly
, semiannual
, or annual
.
payment
dictionary
payment.email
nullable string
Email from payment method. Example: PayPal email.
payment.credit_card
nullable dictionary
Credit card details.
payment.credit_card.exp_month
nullable string
Two-symbol string. Examples: 01
, 12
.
payment.credit_card.exp_year
nullable string
Four-symbol string. Example: 2024
.
payment.credit_card.last4
nullable string
Last four digits of the credit card number.
payment.error_message
nullable string
Returns the latest payment error message only if the status is failed
or retrying
. Otherwise, returns null
.
payment.method
enum
Payment method, in lowercase underscore. Examples: ach
, plaid
, apple_pay
, google_pay
, click_to_pay
, paypal
, venmo
, becs_direct_debit
, bacs_direct_debit
, credit_card
, pad
, sepa_direct_debit
, ideal
, crypto
, stock
.
The value of us_bank_account
maps to ach
. The value of plaid
also maps to ach
.
payment.processor
enum
Payment processor, in lowercase. Examples: stripe
, paypal
, gemini
, manual_brokerage
, coinbase_commerce
(deprecated).
supporter
dictionary
Supporter data, as it displayed on the Recurring plan in your Dashboard.
supporter.id
string
Unique supporter ID.
supporter.email
nullable string
supporter.first_name
nullable string
supporter.last_name
nullable string
supporter.title
nullable enum
Returns null
if the title is empty. Title options include values like mr
, mrs
, etc.
supporter.phone
nullable string
supporter.employer
nullable dictionary
supporter.employer.name
string
supporter.address
nullable dictionary
Mailing address.
supporter.address.country
enum
Two-letter country code, lowercase.
supporter.address.region
nullable string
Can refer to a region, state, or province.
supporter.address.city
string
supporter.address.line1
string
supporter.address.line2
nullable string
supporter.address.postal
string
Postal/ZIP code.
language
string
Supporter’s language.
url
nullable string
URL, from which the donation was made.
utm
dictionary
UTM tags.
utm.source
nullable string
utm.campaign
nullable string
utm.content
nullable string
utm.medium
nullable string
utm.term
nullable string
gift_aid
nullable dictionary
An optional dictionary containing details about Gift Aid. This field is available only for organizations based in Great Britain.
claimed
boolean
Indicates whether the Gift Aid has been claimed (true
) or not (false
).
legal_text
string
The legal text associated with Gift Aid.
Example
1{
2 "id": "RVSHJNPJ",
3 "created_at": "2024-11-10T15:49:12.667Z",
4 "account": {
5 "id": "HRMEIGNS",
6 "code": "911",
7 "name": "Helping Hands"
8 },
9 "amount": "9.99",
10 "amount_in_default_currency": "9.99",
11 "amount_before_fees_covered": "8.99",
12 "amount_before_fees_covered_in_default_currency": "8.99",
13 "livemode": true,
14 "currency": "usd",
15 "comment": "comment",
16 "campaign": {
17 "id": "FUNUMQTSTYD",
18 "code": "GENERAL",
19 "name": "Campaign Name"
20 },
21 "ended_at": "2024-12-10T15:49:12.667Z",
22 "frequency": "monthly",
23 "element": {
24 "id": "XXCKSMLL",
25 "type": "donation_form",
26 "name": "Element Name"
27 },
28 "next_installment_at": "2024-11-10T15:49:12.667Z",
29 "designation": [
30 {
31 "id": "EW83VF95",
32 "code": "DESIGNATION",
33 "name": "Designation Name"
34 }
35 ],
36 "device": {
37 "ip": {
38 "address": "127.0.0.1",
39 "country_name": "Spain",
40 "region": "Catalonia",
41 "city": "Barcelona"
42 }
43 },
44 "on_behalf_of": "Humanity",
45 "payment": {
46 "credit_card": {
47 "exp_month": "01",
48 "exp_year": "2024",
49 "last4": "1111"
50 },
51 "email": "paypalemail@example.com",
52 "error_message": null,
53 "method": "credit_card",
54 "processor": "stripe"
55 },
56 "status": "active",
57 "supporter": {
58 "id": "SBSWERQY",
59 "created_at": "2024-11-10T15:49:12.667Z",
60 "email": null,
61 "first_name": "John",
62 "last_name": "Doe",
63 "title": null,
64 "phone": null,
65 "employer": {
66 "name": "Fundraise Up"
67 },
68 "address": {
69 "country": "us",
70 "line1": "Street",
71 "line2": "House",
72 "city": "City",
73 "region": "CA",
74 "postal_code": "100100",
75 "language": "es"
76 }
77 },
78 "tribute": {
79 "type": "in_memory",
80 "honoree": "Fundraise Up",
81 "sharing": {
82 "type": "address",
83 "address": {
84 "country": "us",
85 "line1": "Street",
86 "line2": "House",
87 "city": "City",
88 "region": "CA",
89 "postal_code": "100100"
90 }
91 }
92 },
93 "fundraiser": {
94 "id": "FUNUMQTSTYD",
95 "name": "Awesome Fundraiser"
96 },
97 "source": "checkout",
98 "supporter_covered_fee": "1.01",
99 "utm": {
100 "source": "web",
101 "campaign": "summer",
102 "medium": "email",
103 "content": null,
104 "term": null
105 },
106 "questions": [
107 {
108 "id": "Q1",
109 "text": "Text"
110 },
111 {
112 "id": "Q2",
113 "options": [
114 "Checkbox 1",
115 "Checkbox 2"
116 ]
117 },
118 {
119 "id": "Q3",
120 "checked": false
121 }
122 ],
123 "custom_fields": [
124 {
125 "name": "a",
126 "value": "A"
127 },
128 {
129 "name": "b",
130 "value": "B"
131 }
132 ],
133 "url": "https://fundraiseup.com",
134 "gift_aid": {
135 "claimed": true,
136 "legal_text": "string"
137 }
138}
Supporters
Endpoints:
- GET
/v1/supporters
- GET
/v1/supporters/:id
These requests allow you to read the supporter records in your Fundraise Up account, as shown on the Supporter page in your Dashboard.
Attributes
id
string
Unique supporter ID.
created_at
timestamp
The time at which the object was created.
account
dictionary
Organization that created the supporter.
account.id
string
Unique organization ID.
account.code
nullable string
Organization code.
account.name
string
Organization name.
livemode
boolean
Test mode indicator. true
for live mode donations, false
for test mode donations.
email
nullable string
first_name
nullable string
last_name
nullable string
title
nullable enum
phone
nullable string
employer
nullable dictionary
employer.name
string
address
nullable dictionary
Mailing address.
address.country
string
Two-letter country code, lowercase.
address.region
nullable string
Can refer to a region, state, or province.
address.city
string
address.line1
string
address.line2
nullable string
address.postal_code
string
Postal/ZIP code.
language
string
Supporter’s language.
Example
1{
2 "id": "SWFGMTJA",
3 "created_at": "2024-11-10T15:49:12.667Z",
4 "account": {
5 "id": "HRMEIGNS",
6 "code": "911",
7 "name": "Helping Hands"
8 },
9 "livemode": true,
10 "email": null,
11 "first_name": "John",
12 "last_name": "Doe",
13 "title": null,
14 "phone": null,
15 "employer": {
16 "name": "Fundraise Up"
17 },
18 "address": {
19 "country": "us",
20 "line1": "Street",
21 "line2": "House",
22 "city": "City",
23 "region": "CA",
24 "postal_code": "100100",
25 "language": "es"
26 }
27}
Events
Endpoint: GET /v1/events
This request allows you to read the events from your Audit Log, helping you monitor changes in your account.
Parameters
types
array of strings
An array of up to 10 strings containing specific event types (see below for available types). The list will be filtered to include only events with a matching event type property. Passing more than 10 values will result in an error.
Attributes
id
string
Unique ID for the event.
created_at
timestamp
Time at which the object was created.
account
dictionary
Organization that created the donation.
account.id
string
Unique organization identifier.
account.code
nullable string
Organization code.
account.name
string
Organization name.
livemode
boolean
Test mode indicator. true
for live mode donations, false
for test mode donations.
type
enum
Event Type | Explanation |
donation.created | Donation created |
donation.success | Donation successful |
donation.pending | Donation pending |
donation.failed | Donation failed |
donation.updated | Donation updated |
donation.refunded | Donation refunded |
donation.success_early_fraud_warning | Donation early fraud warning |
donation.pending_ach_verification_required | Donation pending (verification required) |
donation.pending_incomplete | Donation pending (waiting for the payment provider's response) |
donation.pending_scheduled | Donation scheduled |
donation.pending_waiting_for_transfer | Donation pending (waiting for transfer) |
donation.pending_paypal_action_required | Donation pending (PayPal action required) |
donation.pending_retrying | Donation retrying |
donation.personal_data_deleted | Donation personal information deleted |
donation.success_dispute_created | Donation dispute created |
donation.success_dispute_lost | Donation dispute lost |
donation.success_dispute_won | Donation dispute won |
donation.success_dispute_in_review | Donation dispute in review |
recurring_plan.activated | Recurring plan activated |
recurring_plan.scheduled | Recurring plan scheduled |
recurring_plan.failed | Recurring plan failed |
recurring_plan.completed | Recurring plan completed |
recurring_plan.canceled | Recurring plan canceled |
recurring_plan.terms_updated | Recurring plan payment terms updated |
recurring_plan.paused | Recurring plan paused |
recurring_plan.retrying | Recurring plan retrying |
recurring_plan.details_updated | Recurring plan supporter preferences updated |
recurring_plan.personal_data_deleted | Recurring plan personal information deleted |
supporter.created | Supporter created |
supporter.personal_data_deleted | Supporter details deleted |
supporter.updated | Supporter updated |
transaction_attempt.pending | Transaction attempt pending |
transaction_attempt.success | Transaction attempt successful |
transaction_attempt.failed | Transaction attempt failed |
tribute.created | Tribute created |
tribute.updated | Tribute updated |
tribute.shared | Tribute card sent |
donation
nullable string
Unique ID of the related donation. Example event: donation.created
.
recurring_plan
nullable string
Unique ID of the related recurring plan. Example event: recurring_plan.created
.
supporter
nullable string
Unique ID of the related supporter. Example event: donation.personal_data_deleted
.
Example
1{
2 "id": "66911bb67616b5001045cc6b",
3 "created_at": "2023-11-10T15:49:12.667Z",
4 "account": {
5 "id": "HRMEIGNS",
6 "code": "911",
7 "name": "Helping Hands"
8 },
9 "livemode": true,
10 "type": "donation.created",
11 "donation": "DVTZLHEF",
12 "recurring_plan": null,
13 "supporter": "SWYRPXNQ"
14}
Donor Portal supporter access link
Endpoint: POST /v1/donor_portal/access_links/supporters/:id
This endpoint generates a link that allows a specific supporter to access their Fundraise Up Donor Portal page without logging in.
Response
1{
2 "url": "https://ropsi.org/login/?auth=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7ImlkIjoiNjRiMGJhOWQ5YTE5ZWEwMDFmYTM1MTZhIiwiaWRlbXBvdGVuY3lLZXkiOiIwMDg0YzJkZGZhMGNhZGJhODAwOWI2M2M0MTVhZWZhOGQ0YWYxMjJjZjg3ZmE3ODNmN2ZlNWE5YmVjMzQxNGQzIiwicGF0aCI6Ii9yZWN1cnJpbmdzL1JWRUJXSkJMIn0sImlhdCI6MTcyOTA4MTg2M30.7QTIc9Qvbql642MMvsnrAgVLG3Bj77bCY4yirPAUNXU"
3}
Donor Portal recurring plan access links
Endpoint: POST /v1/donor_portal/access_links/recurring_plans/:id
This endpoint generates a link that allows a supporter to view and edit a specific recurring plan. Access to other sections of the Fundraise Up Donor Portal is restricted.
Parameter
back_url
string optional
Must be a valid URL starting with http://
or https://
. If invalid, returns 400 Bad Request
error.
If provided, this URL will appear as the “← Back to home” link in the Fundraise Up Donor Portal. The supporter can click this link or the portal logo to return to your organization's portal.
If not provided, the “← Back to home“ button will not be displayed and the portal logo will not be clickable.
Response
1{
2 "url": "https://ropsi.org/login/?auth=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7ImlkIjoiNjRiMGJhOWQ5YTE5ZWEwMDFmYTM1MTZhIiwiaWRlbXBvdGVuY3lLZXkiOiIwMDg0YzJkZGZhMGNhZGJhODAwOWI2M2M0MTVhZWZhOGQ0YWYxMjJjZjg3ZmE3ODNmN2ZlNWE5YmVjMzQxNGQzIiwicGF0aCI6Ii9yZWN1cnJpbmdzL1JWRUJXSkJMIn0sImlhdCI6MTcyOTA4MTg2M30.7QTIc9Qvbql642MMvsnrAgVLG3Bj77bCY4yirPAUNXU"
3}
Parent accounts cannot use their API keys to create Donor Portal access links for subaccounts. To create access links for a subaccount, generate an API key within that specific subaccount and use it.
Found a mistake? Is there a missing topic? Hard to read? Let us know