API reference · Donors
Create a donor
POST/v1/donors
Create an account level donor.
Requires a Bearer access token.
Body
CreateDonorDto1 of 21 fields has no description in the spec.
street#stringAddress line 1
streetAddition#stringAddress line 2
city#stringCity
country#stringCountry alpha 2 ISO code
zip#stringZip code
firstName#stringrequiredDonor's first name
lastName#stringrequiredDonor's last name
email#stringrequiredemail addressDonor's email.
companyName#stringDonor's company name.
phone#stringDonor's phone number.
birthdate#string (date)pictureUrl#stringURLDonor's phone number.
title#stringDonor's job title.
personalEmail#stringemail addressDonor's personal email.
persona#stringPersona of the donor.
CSRMARKETINGHRSALESCOMMUNICATIONPRODUCTSMBOTHERextraInfo#stringAdditional information about the donor.
externalId#stringOptional id to link this donor to an entity on your side.
uniqueExternalId#stringSimilar to externalId but should be unique across all donors. Can be used to prevent duplicate donors
slackId#stringDonor's slack id. Required for SLACK campaigns.
accountId#stringUUIDOnly required to link the created entity to a child account instead of the current one.
hasAcceptedTerms#booleanWhether the donor has accepted the terms and conditions
Response
201 · DonorNo field is described in the spec.
donorId#stringalways returnedscopeType#DonorScopeTypealways returnedCAMPAIGNACCOUNTplatformAccessStatus#DonorPlatformAccessStatusalways returnedENABLEDDISABLEDRESTRICTEDfirstName#stringalways returnedlastName#stringalways returnedemail#stringcompanyName#stringphone#stringextraInfo#stringbirthdate#string (date-time)street#stringstreetAddition#stringcity#stringcountry#stringzip#stringexternalId#stringuniqueExternalId#stringslackId#stringpictureUrl#stringtitle#stringpersonalEmail#stringpersona#PersonaCSRMARKETINGHRSALESCOMMUNICATIONPRODUCTSMBOTHERlanguage#LanguagefrenhasAcceptedTerms#booleanalways returnedaccountId#stringalways returnedcampaignId#stringindividualAccountId#stringcreatedAt#string (date-time)always returnedupdatedAt#string (date-time)always returned
Errors
400A field is missing, has the wrong type, or is not part of the request schema.
Every request with a body or query is validated.
{ "statusCode": 400, "message": [ "amount must not be less than 1", "property foo should not exist" ], "error": "Bad Request" }401Unauthorized
Missing, expired or invalid access token.
{ "statusCode": 401, "message": "Unauthorized" }403Account closed
{ "message": "Account closed", "code": "ACCOUNT_CLOSED" }409Unique constraint failed on uniqueExternalId
{ "statusCode": 409, "message": "Unique constraint failed on uniqueExternalId" }
curl -X POST https://api.sandbox.charitips.com/v1/donors \ -H "Authorization: Bearer $CHARITIPS_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "firstName": "<firstName>", "lastName": "<lastName>", "email": "donor@example.com" }'Request bodies are written for this docs and checked against the API's validation; ids in angle brackets are placeholders. Response values are placeholders built from the schema.