API Reference
Donations
To create a donation, use the /api/v1/donations
endpoint. In the response, you'll get a donation ID, which you can use to retrieve information about your donation.
Donations object
The amount of the donation in cents.
The ID of the donation.
Whether the donation was created with production (live) or sandbox (test) credentials.
The ID of a nonprofit from the Change network. If this is not provided, a campaign_id must be provided.
Cart or order volume (in cents) associated with the donation. Change provides AOV metrics if order values are provided.
A zip code to associate with the donation. Change provides geography-based analytics if zip codes are provided.
An external ID associated with the donation.
Arbitrary metadata to be stored with the donation. Must be a valid JSON object.
The currency of the donation.
pledged|invoice_sent|invoice_pending|payout_scheduled|sent_via_ach|sent_via_check|check_cashed|notified|canceled|blocked
The status of the donation.
Example
{
"amount": 500,
"id": "d_W5CMj0BBpv5pule6Ach3pScr",
"live_mode": true,
"nonprofit_id": "n_IfEoPCaPqVsFAUI5xl0CBUOx",
"order_value": 2599,
"zip_code": "94104",
"external_id": "customer_1234",
"metadata": {
"order-number": "90210"
},
"currency": "USD",
"status": "pledged"
}
Create a donation
post /api/v1/donations
Creates a donation to any nonprofit. Change keeps track of your donations, bills you at the end of the month, and handles the nonprofit payouts for you.
Parameters
The amount of the donation in cents.
The id of a nonprofit from the Change network.
Whether you are collecting payment for the donation. This helps us issue the correct tax receipt at the end of the year.
The number of donations to submit.
Whether the amount
parameter should include processing fees. Default is false
.
An external ID associated with the donation, e.g. an order ID, SKU, or customer ID.
Cart or order volume (in cents) associated with the donation. Change provides AOV metrics if order values are provided.
A zip code to associate with the donation. Change provides geography-based analytics if zip codes are provided.
Arbitrary metadata to be stored with the donation. Must be a valid JSON object.
Request
curl https://api.getchange.io/api/v1/donations \
-u YOUR_PUBLIC_KEY:YOUR_SECRET_KEY \
-H "Content-Type: application/json" \
-d '{
"amount": 500,
"nonprofit_id": "n_IfEoPCaPqVsFAUI5xl0CBUOx",
"funds_collected": false,
"external_id": "customer_1234",
"order_value": 2599,
"zip_code": "94104",
"metadata": {
"order-number": "90210"
}
}'
Response
{
"amount": 500,
"id": "d_Rop32RT3dhUKqEy5wxowTx5V",
"live_mode": true,
"nonprofit_id": "n_IfEoPCaPqVsFAUI5xl0CBUOx",
"order_value": 2599,
"zip_code": "94104",
"external_id": "customer_1234",
"metadata": {
"order-number": "90210"
},
"currency": "USD",
"status": "pledged"
}
Request
curl https://api.getchange.io/api/v1/donations \
-u YOUR_PUBLIC_KEY:YOUR_SECRET_KEY \
-H "Content-Type: application/json" \
-d '{
"amount": 100,
"nonprofit_id": "n_IfEoPCaPqVsFAUI5xl0CBUOx",
"funds_collected": false,
"count": 5,
"external_id": "customer_1234",
"order_value": 2599,
"zip_code": "94104"
}'
Response
{
"amount": 100,
"id": "d_pg21Rf444rOxqXkLHDJyP284",
"live_mode": true,
"nonprofit_id": "n_IfEoPCaPqVsFAUI5xl0CBUOx",
"order_value": 2599,
"zip_code": "94104",
"external_id": "customer_1234",
"metadata": {},
"currency": "USD",
"status": "pledged",
"count": 5,
"total_amount": 500
}
Request
curl https://api.getchange.io/api/v1/donations \
-u YOUR_PUBLIC_KEY:YOUR_SECRET_KEY \
-H "Content-Type: application/json" \
-d '{
"amount": 500,
"nonprofit_id": "n_invalid",
"funds_collected": false,
"external_id": "customer_1234",
"order_value": 2599,
"zip_code": "94104"
}'
Response
{
"status": 400,
"code": "nonprofit_invalid",
"title": "The nonprofit is invalid. Please reference a nonprofit in the CHANGE network.",
"detail": "nonprofit_id n_invalid is invalid."
}
List your donations
get /api/v1/donations
Retrieves a list of donations you've previously made. The donations are returned in order of creation, with the most recent donations appearing first. This endpoint is paginated.
Parameters
Which page to return. This endpoint is paginated, and returns maximum 30 donations per page.
The id of a nonprofit from the Change network.
An external ID associated with the donation, e.g. an order ID, SKU, or customer ID. This field is set when a donation is created.
Starting timestamp of donations being retrieved. Send as a unix timestamp.
Ending timestamp of donations being retrieved. Send as a unix timestamp.
Request
curl https://api.getchange.io/api/v1/donations \
-u YOUR_PUBLIC_KEY:YOUR_SECRET_KEY \
-d 'page=1' \
-G
Response
{
"donations": [
{
"amount": 1000,
"id": "d_yEUDGfW5GFHT19kmsxttbbR7",
"live_mode": true,
"nonprofit_id": "n_IfEoPCaPqVsFAUI5xl0CBUOx",
"order_value": 2457,
"zip_code": "30977-7321",
"external_id": null,
"metadata": {
"key": "value"
},
"currency": "USD",
"status": "pledged"
},
{
"amount": 500,
"id": "d_cNmomJNEjw4om0MJbAiMNnh4",
"live_mode": true,
"nonprofit_id": "n_nIstMceV5IXNWwMOzomgHEEV",
"order_value": 4714,
"zip_code": "96411-1737",
"external_id": null,
"metadata": {
"key": "value"
},
"currency": "USD",
"status": "pledged"
}
],
"page": 1
}
Retrieve a donation
get /api/v1/donations/{id}
Retrieves the details of a donation you've previously made.
Parameters
The id of a donation. Ids are returned when a donation is created.
Request
curl https://api.getchange.io/api/v1/donations/d_cNmomJNEjw4om0MJbAiMNnh4 \
-u YOUR_PUBLIC_KEY:YOUR_SECRET_KEY
Response
{
"amount": 500,
"id": "d_cNmomJNEjw4om0MJbAiMNnh4",
"live_mode": true,
"nonprofit_id": "n_MUjmT5yhdf4smx1ykRwO2ovt",
"order_value": 2705,
"zip_code": "45361-4558",
"external_id": null,
"metadata": {
"key": "value"
},
"currency": "USD",
"status": "pledged"
}
Nonprofits
Most U.S. nonprofits exist in the Change platform. Each nonprofit has a Change-issued ID; these IDs are used to reference nonprofits throughout our APIs. You can search for nonprofits manually on the dashboard, or you can seach programmatically.
Nonprofits object
Example
Show a nonprofit
get /api/v1/nonprofits/{id}
Retrieves information for a nonprofit. Missions may be enhanced by AI.
Parameters
The id of a nonprofit from the CHANGE network.
If true, the response will include hidden nonprofits, including unpayable ones.
Request
curl https://api.getchange.io/api/v1/nonprofits/n_MUjmT5yhdf4smx1ykRwO2ovt \
-u YOUR_PUBLIC_KEY:YOUR_SECRET_KEY
Response
{
"id": "n_MUjmT5yhdf4smx1ykRwO2ovt",
"name": "One Tree Planted Inc",
"ein": "464664562",
"pending_payout_amount": 1500,
"socials": {
"facebook": "onetreeplanted",
"instagram": "onetreeplanted",
"twitter": "onetreeplanted",
"youtube": "channel/UCSyNWLnxtob29DOoPGpT1Ug"
},
"email": "hello@onetreeplanted.org",
"icon_url": "https://d2m0e1zy3fwxmp.cloudfront.net/public-benefit.png",
"payable": true,
"payability_restrictions": [],
"pending_payout_amounts": {
"USD": "1500.0"
},
"address_line": "145 PINE HAVEN SHORES RD",
"city": "SHELBURNE",
"classification": "T22",
"mission": "Planting trees in areas that need support.",
"state": "VT",
"website": "WWW.ONETREEPLANTED.ORG",
"zip_code": "05482-7703",
"category": "public benefit",
"cover_image_url": null,
"logo_url": null,
"categories": [
"Private Independent Foundations"
]
}
Request
curl https://api.getchange.io/api/v1/nonprofits/n_MUjmT5yhdf4smx1ykRwO2ovt \
-u YOUR_PUBLIC_KEY:YOUR_SECRET_KEY
Response
{
"id": "n_MUjmT5yhdf4smx1ykRwO2ovt",
"name": "One Tree Planted Inc",
"ein": "464664562",
"pending_payout_amount": 0,
"socials": {
"facebook": "onetreeplanted",
"instagram": "onetreeplanted",
"twitter": "onetreeplanted",
"youtube": "channel/UCSyNWLnxtob29DOoPGpT1Ug"
},
"email": "hello@onetreeplanted.org",
"icon_url": "https://d2m0e1zy3fwxmp.cloudfront.net/public-benefit.png",
"payable": true,
"payability_restrictions": [],
"pending_payout_amounts": {},
"address_line": "145 PINE HAVEN SHORES RD",
"city": "SHELBURNE",
"classification": "T22",
"mission": "Planting trees in areas that need support.",
"state": "VT",
"website": "WWW.ONETREEPLANTED.ORG",
"zip_code": "05482-7703",
"category": "public benefit",
"cover_image_url": "https://fake.cdn/lszc527x47byhqduz997rqs59994",
"logo_url": "https://fake.cdn/jff5vq5tnyrjuynbsqsrc2w0cn8s",
"categories": [
"Private Independent Foundations"
]
}
Search a nonprofit
get /api/v1/nonprofits
Retrieves a list of nonprofits that match the search parameters. Missions may be enhanced by AI. This endpoint is paginated.
Parameters
Your account's public key.
A string to search. This can be the name of a nonprofit, or an EIN. If you do not provide this parameter, you'll get featured nonprofits.
List of categories to search. Valid categories are: 'arts and culture'
, 'education'
, 'environment'
, 'animals'
, 'healthcare'
, 'human services'
, 'international affairs'
, 'public benefit'
, 'religion'
, 'mutual benefit'
, 'unclassified'
.
The page to return. This endpoint is paginated, and returns up to 30 nonprofits by default.
A limit on the number of nonprofits to be returned. Limit can range between 1 and 200, and the default is 30.
If true, the response will include hidden nonprofits, including unpayable ones.
Request
curl https://api.getchange.io/api/v1/nonprofits \
-d 'public_key=YOUR_PUBLIC_KEY&search_term=watsi&page=1&limit=10' \
-G
Response
{
"nonprofits": [
{
"id": "n_IfEoPCaPqVsFAUI5xl0CBUOx",
"name": "Watsi",
"ein": "453236734",
"socials": {
"facebook": "Watsi.org",
"instagram": "watsi",
"twitter": "watsi"
},
"email": "connect@watsi.org",
"icon_url": "https://d2m0e1zy3fwxmp.cloudfront.net/healthcare.png",
"payable": true,
"payability_restrictions": [],
"address_line": "548 Market St # 75903",
"city": "San Francisco",
"classification": "E12",
"mission": "Directly connecting people through technology to provide global access to healthcare.",
"state": "CA",
"website": "https://watsi.org/",
"zip_code": "94104",
"category": "healthcare",
"cover_image_url": null,
"logo_url": null,
"categories": [
"Fund Raising & Fund Distribution"
],
"stats": [
"$100 sponsors 1 surgery"
]
}
],
"page": 1
}
Request
curl https://api.getchange.io/api/v1/nonprofits \
-d 'public_key=YOUR_PUBLIC_KEY&limit=10' \
-G
Response
{
"nonprofits": [
{
"id": "n_IfEoPCaPqVsFAUI5xl0CBUOx",
"name": "Watsi",
"ein": "453236734",
"socials": {
"facebook": "Watsi.org",
"instagram": "watsi",
"twitter": "watsi"
},
"email": "connect@watsi.org",
"icon_url": "https://d2m0e1zy3fwxmp.cloudfront.net/healthcare.png",
"payable": true,
"payability_restrictions": [],
"address_line": "548 Market St # 75903",
"city": "San Francisco",
"classification": "E12",
"mission": "Directly connecting people through technology to provide global access to healthcare.",
"state": "CA",
"website": "https://watsi.org/",
"zip_code": "94104",
"category": "healthcare",
"cover_image_url": null,
"logo_url": null,
"categories": [
"Fund Raising & Fund Distribution"
],
"stats": [
"$100 sponsors 1 surgery"
]
}
],
"page": 1
}
Request
curl https://api.getchange.io/api/v1/nonprofits \
-d 'public_key=YOUR_PUBLIC_KEY&search_term=45-3236734&limit=10' \
-G
Response
{
"nonprofits": [
{
"id": "n_IfEoPCaPqVsFAUI5xl0CBUOx",
"name": "Watsi",
"ein": "453236734",
"socials": {
"facebook": "Watsi.org",
"instagram": "watsi",
"twitter": "watsi"
},
"email": "connect@watsi.org",
"icon_url": "https://d2m0e1zy3fwxmp.cloudfront.net/healthcare.png",
"payable": true,
"payability_restrictions": [],
"address_line": "548 Market St # 75903",
"city": "San Francisco",
"classification": "E12",
"mission": "Directly connecting people through technology to provide global access to healthcare.",
"state": "CA",
"website": "https://watsi.org/",
"zip_code": "94104",
"category": "healthcare",
"cover_image_url": null,
"logo_url": null,
"categories": [
"Fund Raising & Fund Distribution"
],
"stats": [
"$100 sponsors 1 surgery"
]
}
],
"page": 1
}
Request
curl https://api.getchange.io/api/v1/nonprofits \
-d 'public_key=YOUR_PUBLIC_KEY&categories[]=healthcare&categories[]=arts and culture&limit=10' \
-G
Response
{
"nonprofits": [
{
"id": "n_IfEoPCaPqVsFAUI5xl0CBUOx",
"name": "Watsi",
"ein": "453236734",
"socials": {
"facebook": "Watsi.org",
"instagram": "watsi",
"twitter": "watsi"
},
"email": "connect@watsi.org",
"icon_url": "https://d2m0e1zy3fwxmp.cloudfront.net/healthcare.png",
"payable": true,
"payability_restrictions": [],
"address_line": "548 Market St # 75903",
"city": "San Francisco",
"classification": "E12",
"mission": "Directly connecting people through technology to provide global access to healthcare.",
"state": "CA",
"website": "https://watsi.org/",
"zip_code": "94104",
"category": "healthcare",
"cover_image_url": null,
"logo_url": null,
"categories": [
"Fund Raising & Fund Distribution"
],
"stats": [
"$100 sponsors 1 surgery"
]
}
],
"page": 1
}
Get social media content
get /api/v1/nonprofits/{id}/social_media_content
Retrieves social media content for the given nonprofit. CHANGE generates ready-to-post, social-media optimized images that are customized with your company name. This endpoint is not authenticated; pass your account's public key as a parameter instead. Note that this endpoint does not post anything to social media.
Parameters
The id of a nonprofit from the CHANGE network.
Your account's public key.
Request
curl https://api.getchange.io/api/v1/nonprofits/n_IfEoPCaPqVsFAUI5xl0CBUOx/social_media_content \
-d 'public_key=YOUR_PUBLIC_KEY' \
-G
Response
[
{
"theme": "pink",
"url": "https://generated-social-media-content--production.s3.us-west-1.amazonaws.com/bc470139f3db7120b2e5de99507e2418.jpg"
},
{
"theme": "white",
"url": "https://generated-social-media-content--production.s3.us-west-1.amazonaws.com/c4f1280a75c890ec697dcda0225ad33d.jpg"
},
{
"theme": "black",
"url": "https://generated-social-media-content--production.s3.us-west-1.amazonaws.com/340ed7919e61062605e5a8f9b330e57a.jpg"
}
]
Nonprofit Requests
If a nonprofit you like isn't in our system, you can request it. We'll review your request, and if everything checks out, we'll add it to our system.
Nonprofit Requests object
Example
Request a nonprofit
post /api/v1/nonprofit_requests
Requests a nonprofit.
Parameters
The name of the nonprofit.
The EIN of the nonprofit.
The address of the nonprofit.
The city the nonprofit is in.
The state the nonprofit is in.
The NTEE code for the nonprofit.
The mission of the nonprofit.
The social handles of the nonprofit. Accepted keys are: facebook, instagram, tiktok, twitter, youtube.
The website of the nonprofit.
A contact email for the nonprofit.
An email address to use for the nonprofit's payouts.
The URL of an image that represents the nonprofit.
Request
curl https://api.getchange.io/api/v1/nonprofit_requests \
-u YOUR_PUBLIC_KEY:YOUR_SECRET_KEY \
-H "Content-Type: application/json" \
-d '{
"name": "Do Good",
"ein": "123-45678",
"address_line": "123 Charity Ln",
"city": "San Francisco",
"state": "CA",
"classification": "N12",
"mission": "To do more good.",
"socials": {
"twitter": "dogooderz"
},
"website": "dogood.org"
}'
Response
{
"result": {
"address_line": "123 Charity Ln",
"city": "San Francisco",
"classification": "N12",
"admin_email": null,
"ein": "123-45678",
"image_url": null,
"mission": "To do more good.",
"name": "Do Good",
"payout_email": null,
"socials": {
"twitter": "dogooderz"
},
"status": "pending",
"website": "dogood.org",
"id": "nr_jnIwatWJabx39LfIrpgIBm87"
}
}
List your nonprofit requests
get /api/v1/nonprofit_requests
Retrieves your nonprofit requests. Check the status
field for the current status of the request. For accepted
requests, the nonprofit_id
field will be populated with your requested nonprofit's Change ID.
Parameters
Request
curl https://api.getchange.io/api/v1/nonprofit_requests \
-u YOUR_PUBLIC_KEY:YOUR_SECRET_KEY
Response
{
"result": [
{
"address_line": "123 Charity Ln",
"city": "San Francisco",
"classification": "N12",
"admin_email": "georgiana_lemke@huels.info",
"ein": "123-45678",
"image_url": null,
"mission": "To do more good.",
"name": "Do Good",
"payout_email": null,
"socials": {
"twitter": "dogooderz"
},
"status": "pending",
"website": "dogood.org",
"id": "nr_nukkpnx0U20Vx26V5zf2KPgG"
}
]
}
Show a nonprofit request
get /api/v1/nonprofit_requests/{id}
Retrieves a nonprofit request. Check the status
field for the current status of the request. For accepted
requests, the nonprofit_id
field will be populated with your requested nonprofit's Change ID.
Parameters
The id of a nonprofit request.
Request
curl https://api.getchange.io/api/v1/nonprofit_requests/nr_GuMr1eQUX5WvxnhZIheURmah \
-u YOUR_PUBLIC_KEY:YOUR_SECRET_KEY
Response
{
"result": {
"address_line": "123 Charity Ln",
"city": "San Francisco",
"classification": "N12",
"admin_email": "jennifer@legros.io",
"ein": "123-45678",
"image_url": null,
"mission": "To do more good.",
"name": "Do Good",
"payout_email": null,
"socials": {
"twitter": "dogooderz"
},
"status": "pending",
"website": "dogood.org",
"id": "nr_GuMr1eQUX5WvxnhZIheURmah"
}
}
Request
curl https://api.getchange.io/api/v1/nonprofit_requests/nr_MAu5jSTSLdMU8hLRueobKaLk \
-u YOUR_PUBLIC_KEY:YOUR_SECRET_KEY
Response
{
"result": {
"address_line": "123 Charity Ln",
"city": "San Francisco",
"classification": "N12",
"admin_email": "chong@zulauf-rowe.name",
"ein": "123-45678",
"image_url": null,
"mission": "To do more good.",
"name": "Do Good",
"payout_email": null,
"socials": {
"twitter": "dogooderz"
},
"status": "accepted",
"website": "dogood.org",
"id": "nr_MAu5jSTSLdMU8hLRueobKaLk",
"nonprofit_id": "n_dogoodNYuz2muIDefYkvkP02"
}
}
Request
curl https://api.getchange.io/api/v1/nonprofit_requests/nr_vSjB7zFpZ8hOqhREZbF310TQ \
-u YOUR_PUBLIC_KEY:YOUR_SECRET_KEY
Response
{
"result": {
"address_line": "123 Charity Ln",
"city": "San Francisco",
"classification": "N12",
"admin_email": "beau@grady.co",
"ein": "123-45678",
"image_url": null,
"mission": "To do more good.",
"name": "Do Good",
"payout_email": null,
"socials": {
"twitter": "dogooderz"
},
"status": "rejected",
"website": "dogood.org",
"id": "nr_vSjB7zFpZ8hOqhREZbF310TQ"
}
}
Transfers
(Ask us for access) If you use Stripe to collect payments, you can make donations by transferring Stripe funds directly to Change.
Transfers object
Example
Capture a Stripe Transfer
post /api/v1/transfers
(Ask us for access) Creates a donation from an existing Stripe Transfer. A successful response will be empty with a status of 200.
Parameters
The ID of a nonprofit from the Change network.
The destination payment ID of a Stripe Transfer. You can find this ID in the response from Stripe when creating a Stripe Transfer, or when capturing a Stripe PaymentIntent containing transfer_data.
Request
curl https://api.getchange.io/api/v1/transfers \
-u YOUR_PUBLIC_KEY:YOUR_SECRET_KEY \
-H "Content-Type: application/json" \
-d '{
"nonprofit_id": "n_IfEoPCaPqVsFAUI5xl0CBUOx",
"stripe_destination_payment_id": "py_00000000000000000000000"
}'
Reports
See the impact you've made with the Reports API. Generate reports that summarize your giving in relatable terms.
Reports object
Example
Fetch impact report
get /api/v1/reports/impact
Fetches a report detailing the aggregated impact of your donations.
Parameters
An account id to filter donations that are included in the report. Leave this blank to include all donations made by you or your managed accounts.
An external id to filter donations that are included in the report.
Starting timestamp of data to be included in the report. Send as a unix timestamp.
Ending timestamp of data to be included in the report. Send as a unix timestamp.
Request
curl https://api.getchange.io/api/v1/reports/impact \
-u YOUR_PUBLIC_KEY:YOUR_SECRET_KEY
Response
{
"data": [
{
"id": "n_MUjmT5yhdf4smx1ykRwO2ovt",
"name": "One Tree Planted Inc",
"ein": "464664562",
"socials": {
"facebook": "onetreeplanted",
"instagram": "onetreeplanted",
"twitter": "onetreeplanted",
"youtube": "channel/UCSyNWLnxtob29DOoPGpT1Ug"
},
"email": "hello@onetreeplanted.org",
"icon_url": "https://d2m0e1zy3fwxmp.cloudfront.net/public-benefit.png",
"payable": true,
"payability_restrictions": [],
"address_line": "145 PINE HAVEN SHORES RD",
"city": "SHELBURNE",
"classification": "T22",
"mission": "Planting trees in areas that need support.",
"state": "VT",
"website": "WWW.ONETREEPLANTED.ORG",
"zip_code": "05482-7703",
"category": "public benefit",
"cover_image_url": null,
"logo_url": null,
"categories": [
"Private Independent Foundations"
],
"total_impact": [
"planted 327 trees"
]
},
{
"id": "n_nIstMceV5IXNWwMOzomgHEEV",
"name": "Aim For Mental Health Inc",
"ein": "473992060",
"socials": {
"facebook": "AIMforMentalHealth",
"instagram": "aimmentalhealth",
"twitter": "AimMentalHealth",
"youtube": "channel/AimMentalHealth"
},
"email": null,
"icon_url": "https://d2m0e1zy3fwxmp.cloudfront.net/healthcare.png",
"payable": true,
"payability_restrictions": [],
"address_line": "PO BOX 4235",
"city": "CARMEL",
"classification": "F32",
"mission": "WE FIND AND FUND THE MOST PROMISING YOUTH MENTAL HEALTH RESEARCH IN THE WORLD SO WE CAN FIND REAL SOLUTIONS WITH IMMEDIATE IMPACTS. WE RAISE AWARENESS WITHIN OUR COMMUNITIES REGARDING THE MENTAL HEALTH CRISIS AMONG OUR YOUTH.",
"state": "CA",
"website": "WWW.AIMFORMENTALHEALTH.ORG",
"zip_code": "93921-4235",
"category": "healthcare",
"cover_image_url": null,
"logo_url": null,
"categories": [
"Community Mental Health Centers"
],
"total_impact": [
"sponsored therapy sessions",
"sponsored books for children",
"purchased pencils for test takers in need",
"sponsored trips to San Francisco"
]
}
],
"filters": {
"end_timestamp": 1732137681
}
}
Request
curl https://api.getchange.io/api/v1/reports/impact \
-u YOUR_PUBLIC_KEY:YOUR_SECRET_KEY \
-d 'start_timestamp=1732051281&end_timestamp=1732224081' \
-G
Response
{
"data": [
{
"id": "n_MUjmT5yhdf4smx1ykRwO2ovt",
"name": "One Tree Planted Inc",
"ein": "464664562",
"socials": {
"facebook": "onetreeplanted",
"instagram": "onetreeplanted",
"twitter": "onetreeplanted",
"youtube": "channel/UCSyNWLnxtob29DOoPGpT1Ug"
},
"email": "hello@onetreeplanted.org",
"icon_url": "https://d2m0e1zy3fwxmp.cloudfront.net/public-benefit.png",
"payable": true,
"payability_restrictions": [],
"address_line": "145 PINE HAVEN SHORES RD",
"city": "SHELBURNE",
"classification": "T22",
"mission": "Planting trees in areas that need support.",
"state": "VT",
"website": "WWW.ONETREEPLANTED.ORG",
"zip_code": "05482-7703",
"category": "public benefit",
"cover_image_url": null,
"logo_url": null,
"categories": [
"Private Independent Foundations"
],
"total_impact": [
"planted 327 trees"
]
},
{
"id": "n_nIstMceV5IXNWwMOzomgHEEV",
"name": "Aim For Mental Health Inc",
"ein": "473992060",
"socials": {
"facebook": "AIMforMentalHealth",
"instagram": "aimmentalhealth",
"twitter": "AimMentalHealth",
"youtube": "channel/AimMentalHealth"
},
"email": null,
"icon_url": "https://d2m0e1zy3fwxmp.cloudfront.net/healthcare.png",
"payable": true,
"payability_restrictions": [],
"address_line": "PO BOX 4235",
"city": "CARMEL",
"classification": "F32",
"mission": "WE FIND AND FUND THE MOST PROMISING YOUTH MENTAL HEALTH RESEARCH IN THE WORLD SO WE CAN FIND REAL SOLUTIONS WITH IMMEDIATE IMPACTS. WE RAISE AWARENESS WITHIN OUR COMMUNITIES REGARDING THE MENTAL HEALTH CRISIS AMONG OUR YOUTH.",
"state": "CA",
"website": "WWW.AIMFORMENTALHEALTH.ORG",
"zip_code": "93921-4235",
"category": "healthcare",
"cover_image_url": null,
"logo_url": null,
"categories": [
"Community Mental Health Centers"
],
"total_impact": [
"sponsored therapy sessions",
"sponsored books for children",
"purchased pencils for test takers in need",
"sponsored trips to San Francisco"
]
}
],
"filters": {
"start_timestamp": 1732051281,
"end_timestamp": 1732224081
}
}
Prebuilt Pages
Our prebuilt pages allow you to easily accept donations without integrating a payment processor.
Prebuilt Pages object
Example
Create a checkout link
post /api/v1/payments/checkout_link
Creates a Stripe Checkout link to collect donations for a specific nonprofit. Donation processing fees are automatically deducted from the collected amount.
Parameters
The amount of the donation in cents.
The url the donor will be redirected to if they cancel checkout. Must be prefixed with https://
The id of a nonprofit from the Change network.
The url the donor will be redirected to upon a successful donation. Must be prefixed with https://
An external ID associated with the donation, e.g. an order ID, SKU, or customer ID. Will be attached to the donation created by a successful checkout.
Arbitrary metadata to be stored with the donation. Must be a valid JSON object. Will be attached to the donation created by a successful checkout.
Request
curl https://api.getchange.io/api/v1/payments/checkout_link \
-u YOUR_PUBLIC_KEY:YOUR_SECRET_KEY \
-H "Content-Type: application/json" \
-d '{
"amount": 500,
"cancel_url": "https://your-domain.com/cancel",
"nonprofit_id": "n_IfEoPCaPqVsFAUI5xl0CBUOx",
"success_url": "https://your-domain.com/success",
"external_id": "customer_1234"
}'
Response
{
"checkout_url": "https://checkout.stripe.com/pay/cs_123"
}
Request
curl https://api.getchange.io/api/v1/payments/checkout_link \
-u YOUR_PUBLIC_KEY:YOUR_SECRET_KEY \
-H "Content-Type: application/json" \
-d '{
"cancel_url": "https://your-domain.com/cancel",
"nonprofit_id": "n_IfEoPCaPqVsFAUI5xl0CBUOx",
"success_url": "https://your-domain.com/success"
}'
Response
{
"status": 400,
"code": "amount_required",
"title": "Param 'amount' can't be blank."
}