Classy API Release Updates

Here are the latest updates to the Classy API. Feel free to reach out with any questions at api@classy.org.

For more information on the API and these release updates, visit the Classy API documentation.

Q3 2018

    What's Fixed

    1) Fixed a bug resulting in several answers being recorded for the same custom question on registration.

    2) The property "hide_classy_logo" of a Branding object of an Organization now returns true if the Organization is domain masked. (Was always returning false before)

Q2 2018

    What's Fixed

    1) Fixed issue causing organizations to see "virtual admins" in the list of their admins.

    What's Fixed

    1) Can no longer publish/republish legacy campaigns through API

    What's New

    1) Migrated branding images to Assets system

    2) Added timezone_identifier attribute to organizations to allow orgs to set a TZ preference for reports, etc.

    3) Added API support to fetch promo codes by any remaining available or not

    4) Per GDPR, supporters are opted out by default unless explicitly granting consent

    What's Fixed

    1) Fixed bug preventing updating organization records with null/empty currency_code attributes (legacy, default USD)

    2) Fixed issue preventing filtering for certain attributes on credential set collections endpoints

    3) Fixed a number of organizations and campaigns which erroneously had no default designation which could cause downstream 500 errors

    What's New

    1) Upgraded organization branding images to use the Asset system (sunset)

    2) Upgraded member images to use the Asset system (sunset)

    What's Fixed

    1) Produce appropriate attributes for transactions based on the requester (donor vs organization admin)

    2) Fixed bug that could case failures when setting Mailchimp account information for an organization

    3) Fixed permissions around what types of admins can set campaign-level fee on top percentage value

    4) Fixed bug when duplicating a campaign would not create correct associations between duplicated tickets and duplicated custom questions

    5) Fixed bug where certain configurations of ticket/registration promo codes and overhead amounts could produce negative values for donation_gross_amount and/or donation_net_amount

    What's New

    1) GDPR Consent:

    - Organization admins can opt out on behalf of a supporter, but not opt in

    - Guarantee that new opt in / opt out selects override previous choices for supporters

    - Organizations can customize consent language

    - Historical tracking of consent decisions and consent copy

    2) Start_time, end_time and goal are no longer required for designations

    What's Fixed

    1) Fixed several bugs concerning Mailchimp integration

    2) Fixed issue preventing saving a fundraising team's goal in certain Passport scenarios

    3) Produce a more instructive error when attempting to create a fundraising team for a campaign that does not support them

    4) Fixed issue where attempting to filter a ticket type collection by quantity_available would produce a 500 error

    5) Fixed issue where it was possible to set boolean fee_on_top attribute of recurring donation plan to null

    What's New

    1) API support to allow setting organization- and campaign-level fixed fee on top values for forthcoming fee on top changes

Q1 2018

    What's Fixed

    1) Title attribute of stories and updates is now nullable.

    What's Fixed

    1) Fixed permission issue that could prevent a fundraiser from joining a team in certain scenarios.

    2) Updated number of characters allowed in Twitter content to 280.

    3) Fixed bug where promo codes that have zero effective value (0% or $0 discount) did not get correctly applied to completed transactions.

    What's New

    1) API support for feature allowing orgs to select subset of designations that can be chosen at checkout or fundraiser signup.

    What's Fixed

    1) Fixed inconsistent permission checks when fetching a recurring donation plan individually verses in a collection.

    2) Fixed feed items were not being created when a fundraising page was transferred from one team/campaign to another.

    3) Broke up Dddication honoree fields (first name, last name) in both individual and collections responses.

What's Fixed:

1) Fixed issue causing Feed Items to not be created when new Fundraising Teams are created

2) Fixed issue where Supporter was not created during event registration if the member already existed

3) Fixed typo in attribute of Asset responses

4) Fixed error causing 500 responses when confirming a Cart w/ an incomplete POST body

5) Added broken-out honoree_first_name and honoree_last_name fields to transaction collections, when dedication is present

    What's New:

    1) For fundraising pages, designation_id is now fillable

    What's Fixed:

    1) Corrected an issue where a campaign admin was able to access org-level settings in Classy Manager

    What's New:

    1) The designation field for offline donations is now fillable when creating & updating

    2) When fetching a recurring plan, Member, Campaign, Fundraising Page, Fundraising Team, Dedication associations can now also be included in the request

    3) Increased the field length of address fields for supporters, transactions, recurring plans, and members to support lengths up to 512 characters

    4) For inactive or canceled organizations, it is no longer possible to create any new resources

    What's Fixed:

    1) Corrected an issue where soft credit amounts for registrations were not accurately calculated

    2) Changed campaign progress percent-to-goal reporting to use decimals in the percentage instead of whole numbers, which was causing inaccuracies in displaying progress

    3) Resolved an issue in legacy peer-to-peer fundraising pages that caused broken links for commenting & thanking donors

    4) Increased the maximum length for the campaign goal field from 10 to 12 digits

    5) In the legacy product, the updated_at timestamp for transactions is now properly adjusted to the current datetime for all updates

Q4 2017 (Through January 31, 2018)

    What's New:

    1) When fetching a recurring donation plan, it is now possible to fetch the same associations as with transactions (Member, Offline Payment Info, Dedication, Recurring Donation Plan, Supporter)

    2) Added percent_to_goal field to campaign overview endpoint

    3) Organizations with a "Trial" status before entering credit card details can no longer publish campaigns

    4) API now allows the transfer of hard credits between fundraisers on the same campaign for the campaign admin permission level (previously only an org admin could perform this transfer)

    What's Fixed:

    1) Fixed an issue where the API allowed a team to be transferred to another team that does not allow sub-teams

    2) Added validation to prevent creating multiple supporters for a single organization for a single member

    What's Fixed:

    1) Size of state field on recurring donation plans has been increased from two to 32 characters to allow for international names

    2) Validation around state updated for transactions and recurring donation plans to allow for larger values

    What's New:

    1) New DELETE method for supporters to allow for soft deleting.

    2) Publishing a campaign is no longer allowed for unactivated Trial organizations.

    3) Created a new status "pending" for teams created during the cart process. This indicates a team created as part of the cart process but not activated due to a payment failure.

    What's Fixed:

    1) Corrected an issue where campaigns without FAQs returned a 500 error when being duplicated.

    2) Fixed an issue where the browser_info field on transactions was not storing data.

    3) Revised state length validation on transactions and recurring plans from 2 to 32 characters.

    4) Resolved an error related to setting the end date of a donation matching plan to be prior to the current date.

    What's fixed:

    1) Corrected an issue where a recurring plan with a "failing" status could not be updated to "canceled".

    2) Fixed an issue where the is_anonymous field on a recurring plan was not settable or updateable.

    3) Resolved an issue where subsequent transactions from an anonymous recurring plan were not marked as anonymous.

    What's New:

    1) Documentation improvements, including recurring-donation-plans/history, member, comment, & app

    What's fixed:

    1) When fetching a collection of transactions, the "with=offline_payment_info" association is now properly recognized.

    2) Added missing recurring donation plan history documentation.

    What's New:

    1) Passport-related API attributes have been documented and published.

    What's fixed:

    1) Paginated currency results now show all currencies on one page.

    2) Updated public API documentation to accurately reflect all fetchable transaction & dedication fields, including all new Passport related fields (all raw_* and charged_* fields)

    3) Attributes on collections are now returned in alphabetical order (they were previously unsorted, but in alphabetical order when fetching a single resource)

    What's New:

    1) Dedication first & last name fields are now fetchable

    2) Cart now validates if a team is required when creating fundraising pages during confirmation

    3) Teams and fundraisers are no longer to set a goal that is in a non-whitelisted currency

    4) Cart validation no longer requires first/last name & email fields for ticketed and registration event types

    5) Added a new status "Failing" for recurring plans to reflect a plan where the last transaction has failed but the plan has not yet been canceled

    What's fixed:

    1) The process for fetching fundraising teams with aggregates has been updated to correctly report team total

Q3 2017 (Through October 31, 2017)

    What's fixed:

    1) New dedication first/last name fields are new fetchable via transactions and added these new fields to documentation

    2) Fixed a documentation issue where attributes for a single resource where displayed alphabetically but not for a collection; all attributes should now be listed alphabetically

    3) Updated cart logic to validate if a team is required when creating fundraising pages during registration

    What's new:

    1) Significantly improved the response time when fetching fundraising teams with aggregates

    2) Creating a recurring plan will now create a supporter record if one did not already exist for the related organization

    3) Released new whitelist capability for organizations to define supported Passport currencies

    4) Campaigns & fundraising pages & teams can no longer create a goal with a currency that has not been whitelisted

    What's fixed:

    1) Resolved an issue where feed items were occasionally not created when creating a new campaign

    2) Fixed an issue where a donation that was set as shared was not credited to fundraising pages created via a registration

    3) Corrected an anomaly where a cart could not be finalized if a campaign was deactivated after the cart was created

    What's new:

    1) Added raw_currency_code & raw_donation_amount fields to RecurringPlanHistory object

    2) Implemented new API for creating DonateDouble records for donations

    What's fixed:

    1) Fixed an issue where the canonical_url field was not appearing in responses

    2) Resolved an issue where charged attributes were not populating on transactions

    3) Corrected an issue where fundraising team creation would not immediately trigger the creation of an activity feed item

    4) Corrected an issue where a recurring plan history record was not created for the "created" recurring plan activity

    5) Resolved an issue where the thankyou_email_text attribute wasn't being set on POST to the fundraising_page resource

    What's new:

    1) Added support for email_type tag for custom questions

    2) Added a new attribute on transactions to indicate if a donor indicated that a donation is eligible for UK gift aid

    What's fixed:

    1) Fixed an issue where Campaigns that were not active would not allow new transactions, which prevented both offline donations/registrations and recurring donations to be created

    2) Corrected an issue where a cart created before a campaign was deactivated/unpublished caused an error upon checkout

    3) Resolved an issue where updating the team_membership_policy on a campaign was not saved correctly

    4) Corrected an issue where the email field was required for dedications

    What's new:

    1) Added support for first/last name for dedication fields

    2) Added payment_gateway field when creating/updating a recurring donation plan

    What's fixed:

    1) Fixed an issue where the registrations/id?with=registering_member endpoint returns null member thumbnail images

    2) Fixed an issue where password emails and other asynchronous processes were significantly delayed

    3) Fixed an issue where member records for first time donors were created in status "unconfirmed" instead of "unclaimed"

    4) For registrations, the entire amount is credited to the fundraiser, not just the tax deductible amount

    5) Resolved an issue where the discount on a purchase was not applied to other registrations if the registration originally receiving the promo code was removed from the cart

    6) Resolved an issue where setting is_active to NULL when creating a promo code caused a 500 error (returns 400 with proper error message now)

    7) Resolved an issue where setting is_active to an empty string when creating a promo code caused the value to be set to false (returns 400 with proper error message now)

    What's new:

    1) Added promo code fields (known as "discount code" for legacy campaigns) to transaction model

    2) Added multi-currency support for auto-split team donations

    3) Added the ability to set the team role to "primary captain" for a registrant on the cart

    4) Added topic for recurring-donation-plan-history

    What's fixed:

    1) No more delays when a user is requesting a password reset code. The email is sent right away.

    2) There could have been some latency with salesforce syncing. This is now solved too.

    What's fixed:

    1) Cart confirmation using new PromoCode system now stores discount_code and discount_total on newly-created registration transaction (reflected in reporting)

    What's fixed:

    1) Fixed an issue related to exporting to MailChimp

    2) Delete promo code configuration now returns a 200 response (previously returned 204)

    3) Response when creating a promo code now includes the is_active attribute

    4) Fixed an issue where offline donations could not be created for campaigns with an end date in the past

    5) Fixed an issue where fundraising pages weren't created for registration with fundraising campaigns with an end date in the past

    6) Fixed an issue with updating supporters that did not have a value for source_campaign_id (legacy data)

    7) Fixed an issue that caused a discrepency between donation net amount and charged total gross amount

    8) Fixed an issue with updating a campaign to set classy_mode_checked_by_default to true

    What's new:

    1) Email opt_in field is now returned when fetching a transaction with supporter data

    2) Promo codes can now be fetched along with a cart

    3) Promo code is_active field now defaults to true

    4) The value of the code attribute for a promo code can no longer be changed once the code has been applied at least once

    5) The charged_total_gross_amount field is now required for all credit card transactions

    6) Exposed classy_fee_percent when fetching an organization

    7) For events, added support in the cart to hard credit an additional donation

    8) New registration with fundraising settings to allow creation of teams by fundraisers and to make joining a team required, optional, or prohibited

    9) Organizations using registration with fundraising now have the ability to allow registration purchases to count toward the registrants' fundraising pages

    What's fixed:

    1) Fixed bug in FRS Registration w/ Fundraising events that could sometimes cause duplicate registration/attendee records to be created.

Q2 2017 (Through July 31, 2017)

    What's fixed:

    1) Recurring plans can now be updated from an "Attempted" status. Previously once a recurring plan had this status it could not subsequently be updated to any other status

    2) Fixed issue where payment method of "Classy Pay" sometimes appears in reporting as "ClassyPay".

    3) A fundraising team can now no longer be transferred to itself (in other words, the team can't be set as its own parent).

    4) Fixed an issue where failed recurring payments were showing as successful in recurring history reports.

    What's new:

    1) New endpoint for transaction receipt history. This allows viewing receipt history for Canadian clients.

    2) Legacy general donation campaigns can no longer be unpublished.

    3) Updated the registration checkout process to ensure that the campaign has not ended and any team joined during registration is allowing new participants to join.

    What's fixed:

    1) Fixed bug that could prevent saving a fundraising team on a PUT request in some cases

    What's fixed:

    1) Fixed bug where transaction item meta attribute donation_net_amount was not taking into account fee_on_top

  • What's new:

    1) Added API endpoints for managing organization notifications for things like Transactions, P2P signups, Chargebacks, etc. (Dashboard > Settings > Notification Emails).

  • What's fixed:

    1) Fixed bug causing transaction item meta attributes (fees_amount, donation_net_amount) were no longer being returned.

    2) Fixed bug preventing very early grandfathered organizations from publishing some FRS campaigns.

    3) Payment_type and description attributes of offline payments are no longer required.

    4) Fixed bug where some failing recurring payments did not correctly record the failure in the recurring payment history.

    5) New endpoint to fetch the receipt history for a transaction (CA organizations). GET /transactions/ID/receipt-history

    6) Added charged_at attribute to transaction model which indicates when payment was sent to processor.

    7) Fixed bug that allowed General Donations campaigns to be unpublished.

  • What's fixed:

    1) SSO - Fixed bug that caused errors when trying to sign up as a new organization when providing a weak password for new accounts

  • What's new:

    1) Pricing plan changes: all plan types may have recurring donations and ecards, free plan types may not have ticketed/registration events

    2) Added new "status" field to attendee/registration records indicating Attending or Not Attending

    3) New endpoints to fetch and set organization-level settings (account holder info, social media, EIN, logo, name, etc.)

    4) New endpoints to fetch, create, and update organization-level admins (aka Organization Credential Sets)

    5) Added ability to fetch all feed items for an entire organization

    6) Added metadata attribute to supporter records

    7) Added credit card type and expiration values to transaction responses

  • What's fixed:

    1) Fixed bug preventing setting some transactions to "refunded" or "chargeback lost" states

    2) Fixed bug where general donations campaigns were not prevented from being unpublished

    3) Fixed bug preventing correct setting of ACH values on transactions

    4) account_type and institution are now optional instead of required when ACH is payment method

    5) Fixed bug where filtering fundraising page collections by campaign_id could cause HTTP 500 errors

    6) Fixed bugs causing some transactions to report incorrect fees or donation amounts when Fee-On-Top elected

    7) Fixed bug where election of Fee-On-Top was not being properly recorded on recurring donation plan records

    8) Fixed bug where some aggregate values were not present/populated when fetching campaign overviews

  • What's fixed:

    1) Fixed bug where UpdateTransaction would throw a 500 when a refund didn't have a refund_transaction_id

  • What's fixed:

    1) Fixed timezones in registration order confirmation emails

    2) Fixed the total_gross_amount, donation_gross_amount, and donation_net_amount on Pre Internationalization transactions that have been modified after its release.

  • What's fixed:

    1) Fixed issue where filtering a collection of transactions on the campaign_id attribute could produce a 500 error.

    2) Fixed issue where net donation amount for some fee-on-top transactions was incorrectly calculated.

  • What's fixed:

    1) Donation receipts now formatted properly.

    2) Fixed issue where logo_url would sometimes not be populated for fundraising team responses.

    3) Bug that could cause fundraising goals for fundraising pages to be zeroed-out.

    4) Bug that caused fundraising pages for Canadian orgs (CAD) to display in USD.

    5) Fixed bug that could show net donation for transactions with value of gross donation (ignoring fees).

    6) Fixed bug that could incorrectly show fees as zero.

    7) Fixed issue where Campaign overviews were missing metrics.

    8) Fixed issue where attendee records were missing unique identifiers.

    9) Fixed bug where friendly URLs (domain slugs) were not shown as available when its fundraising entity had been deleted/deactivated..

  • What's fixed:

    1) Fixed bug where some fundraising page goals could incorrectly get zeroed out.

    2) Fixed bug where some recurring donation plan metadata attributes could not be set.

  • What's new:

    1) Fixed issue where donation amount for transactions (not gross amount) was incorrectly flagged as 0.00 in some circumstances.

    2) Fixed issue incorrectly treating fundraising goals as USD for organizations whose currency is CAD.

  • What's new:

    1) Can now fetch all domain slugs for an organization.

    2) Added missing documentation for recurring donation plan history endpoints.

  • What's fixed:

    1) Fixed FRS Registration w/ Fundraising bug where fundraising credit was mis-assigned for extra donation.

    2) Fixed bug where some attendee records did not receive an attendee_id value. Back-filled existing records.

    3) Fixed issue where submitting array or object JSON where a scalar type was expected could produce an HTTP 500 error.

    4) Fixed bug where some transactions could not be updated because of broken member associations.

  • Bug Fix:

    1) Fixed error where invalid timezone identifiers would sometimes produce 500 errors.

    2) Fixed error where max_per_transaction value on ticket types was not being properly respected.

    3) Fixed error where sometimes attempting to filter on an "ended_at" field could produce a 500 error.

  • Enhancement:

    1) Updated campaign domain slugs endpoint to support fetching all domain slugs for any fundraising entity (team, page) that lives underneath that campaign. (GET /campaigns/1234/domain-slugs?scope=recursive)

    2) Add ability to fetch member thumbnail images in all places where member can be fetched as a "with" association:

    • Activity feeds, feed items, stories, updates and comments
    • Transactions
    • Credential sets
    • Fundraising teams and pages

  • Deprecation:

    1) Removed min_per_transaction value on ticket types. This rule is not enforced and the parameter will be ignored.

  • General Note:

    'Recurring_donation_plan_id' now has a value of 'none', not '0', for one-time donations. Using the value 'null' will take both 'none' and '0' into account for any filters.

  • Bug Fix:

    1) Fixed issue where team lead may be incorrectly set for registrations created using FRS RWF (Registration with Fundraising) cart.

    2) Fixed issue where custom questions whose answers have quotations marks (") could be unanswerable.

  • Enhancement:

    1) Exposed 'return_url' attribute of a campaign, used for redirecting receipt pages after checkout.

  • Bug Fix:

    1) Fixed mismatch between campaign and its fundraising page end dates - fundraising pages were sending back error when attempting to save/edit via API.

Q1 2017 (Through April 30, 2017)

  • Bug Fix:

    1) For FRS RWF transactions using Classy Pay, now correctly recording both Classy Pay as payment method and underlying payment processor as payment gateway.

    2) For FRS RWF, now correctly applying registrant/attendee name to attendee records instead of purchaser.

    3) For FRS transactions, now correctly recording designation information.

    4) For Classy Pay transactions, now properly making call to Donate Double.

    5) More bug fixes to correctly handle dates in ISO8601 (and fail more gracefully for invalid dates and times).

  • Bug Fix:

    1) Fixed several bugs related to specifying dates and times in unexpected formats.

    2) RWF Beta: Fixed issue where a team designation could not be removed from cart during checkout.

    3) RWF Beta: Fundraising pages created from checkout did not always have correct default goal set.

  • Enhancement:

    1) Can now DELETE answer for custom question to nullify previous answer.

    2) RWF Beta: Ticket_pass_on_fees is now updatable for campaign settings.

  • Hotfix:

    1) '?with=supporter' parameter previously returned null values for all supporters.

  • Hotfix:

    1) Canceling offline donations previously threw validation errors.

  • This release aims at fixing slowness that provoked some SSO malfunctioning on March 15th ~ 09:00PST. It should not have any impact on the product.

  • For API users: app token generation is now cached for a limited amount of time. This means that the /oauth2/auth endpoint may return a previously generated app access token if a client app requests another new one within a short period of time.

  • Bug Fix:

    1) Return a proper 400 validation error when supplying invalid date/time formats in filters, instead of 500.

    2) Fixed issue preventing ClassyPay-only clients from publishing campaigns through API.

  • Enhancement:

    1) Expose "external_url" attribute of campaigns to allow for setting a blanket redirect from classy.org campaign page to another URL.

    2) Expose ACH-related fields for transactions. In advance of ClassyPay support.


    We recently cleaned up what we let in as valid datetimes to our API. This may affect live code on your app.

    1) Our API NO LONGER accepts accept the dot notation (2017-01-24T14:45:23.0000000Z is no longer valid).

    2) We now REQUIRE an offset to be applied to your datetime (2017-01-24T14:45:23 is no longer valid).

    3) Positive offsets require URL encoding (2017-01-24T14:45:23+02:00 is no longer valid).

    Correct format: 2017-01-24T14:45:23%2B02:00 (+2 offset), 2017-01-24T14:45:23-02:00 (-2 offset), 2017-01-24T14:45:23-00:00 (UTC)

  • Bug Fix:

    1) Fixed issue where the creation of a fundraising page was not creating the appropriate supporter record for the org.

    2) Make GET /registrations/#/answers endpoint available to public API users.

    3) Fixed issue in validation preventing deletion of some feed items.

    4) Fixed issue where creating feed items for fundraising pages could throw exceptions.

    5) Fixed issue where in recurring donor's report ClassyPay transactions appear to be Classy PayPal.

    6) Fixed issue where ClassyPay donations could be matched twice with Donate Double.

    7) Fixed issue where recurring donation plans created in ClassyApp, but transacting now via API were created with incorrect associations.

    8) Ensure that the 'location' attribute of a custom question is valid for the campaign type it is created for.

  • Enhancement:

    1) Add "member" and "transaction" as fetchable "with" associations on registration collection endpoints.

    2) Update campaign credential sets endpoints to correctly reflect product admin levels. Disallow ability to create campaign-level admins for only reporting or activity wall access.

    3) Expose payment card type in transaction endpoints.

    4) Added POST /regsitrations/#/answers.

    5) Add additional aggregate information to fundraising page/team overview endpoints.

    6) Add shares count to Post model, and ability to increment counts.

    7) Expose fundraising team cover photo through API.

  • Bug Fix:

    1) Prevent future duplicated campaigns from having emails with duplicated blocks and attachments

  • Enhancement:

    1) Expose ticket ID on custom questions endpoints.

    2) Expose quantity_sold and quantity_reserved on ticket-type endpoints.

  • Bug Fix:

    1) Prevent deadlock when attempting to save optional questions for donation page location.

    2) Allow ticket types to use null for quantity_available, to indicate unlimited availability.

    3) Fixed issue where multiple-choice type custom questions could not be answered if choice values contained commas.

    4) Supporters now correctly returned from GET /fundraising-pages endpoints when using with=supporter option

    5) Fixed bug where fetching transactions could generate an HTTP 500 error.

  • Enhancement:

    1) Improved campaign duplication endpoint, allows selection of related entities including FAQs, ecards, custom questions, etc. to be duplicated.

    2) First release of server-side shopping cart, allowing tickets to be reserved during checkout process. FRS only--no public API yet.

    3) Expose product_id on ticket-type endpoints to allow setting registration custom questions per ticket-type.

    4) Can now set host fees as either a percentage or flat amount of ticket-type price. This applies to FRS campaigns only.

    5) When a non-domain-masked organization adds domain masking, vanity URLs are automatically converted to apply to the new domain context.

    6) Clients with Mailchimp integration enabled can now export a supporters report at the organization level.

  • Bug Fix:

    1) Improve handling of team auto-allocation when team carries negative balance and new transaction exceeding that negative balance comes in. Auto-splits the balance above the negative.

    2) When fetching fundraising page collections, the "supporter" with association was not returning supporters.

  • Documentation:

    1) Updated documentation to reflect additional resources fetchable with transactions using "with" associations.

    • fundraising_team
    • fundraising_page
    • organization
    • receipt_serial
    • recurring_donation_plan
    • supporter

Q4 2016/17 (through jan. 31 2017)

  • Enhancement:

    1) Expose `app_id` and `status` on charity payment providers endpoint.

    2) Expose `is_started_at_hidden` property on campaigns.

    3) Record and persist the "from" creditable entity on a hard credit transfer.

    4) Separated model and endpoints for Story and Updates (formerly Posts)

    5) Change default value for FRS campaigns' `disable_fundraising` to false.

    6) Make comments (for Story/Update) soft-deletable.

    7) Get number of views on a Story/Update.

    8) Organization-level exporting on Mailchimp

    9) Single supporter exporting on Mailchimp

  • Bug Fix:

    1) Fixed issue with exposing fundraising page and team logo images.

    2) Some recurring donations (after initial) through Classy Pay were not being correctly credited to a fundraising page or fundraising team.

    3) FRS campaign duplication incorrectly cloned theme blocks into new campaign, preventing saving of new campaign.

    4) Could not update the "purchased_at" property of offline transactions.

    5) Back-filled missing supporters that should have been created on creation of fundraising page.

    6) Back-filled site activity that was missing from hard credit transfer operations.

    7) Anonymizing a transaction was deleting the comments on its corresponding feed items.

    8) Opt-in selection from checkout was not being correctly persisted on to all supporters.

    9) Fix docs that did not show all available with associations for transactions.

    10) Campaign-level subscribing was not always working on Mailchimp.

  • Security:

    1) Implemented SPAM prevention policies and updates to prevent spammers from utilizing email features in fundraising pages.

  • Enhancement:

    1) Segment added to supported analytics services.

  • Bug Fix:

    1) Allow creation of teams by admins even when "allow team fundraising" flag is set to false.

    2) Activity feeds now show updates when a fundraiser joins team (FRS).

    3) Exposed updated_at field for transactions in API.

  • Security:

    1) Implemented SPAM prevention policies and updates to prevent spammers from utilizing email features in fundraising pages.

  • Enhancement:

    1) Allow campaigns to enable/disable multiple fundraising pages for the same user.

  • Bug Fix:

    1) Fixed issue that caused new member and supporter records to be incorrectly assigned a country value of 'US'

    2) Fixed issue where a supporter record was occassionally not created when a new fundraising page is created for a campaign.

    3) Fixed several bugs with MailChimp integration API endpoints.

    4) Activity feed records fixed when moving a transaction (hard credit transfer) or joining a fundraising team.

  • Bug Fix:

    1) Fixed issue that caused incoming transactions to show up in activity feeds as anonymous.

    2) Added defensive check to agent association in TransactionUpdatedListener which was failing with a php fatal error.

    3) Fixed Fee on Top so that only Classy PayPal and WePay use all fees in the calculation. Every other payment processor is calculated with only Classy fees.

  • Enhancement:

    1) Offline donations can now be created on behalf of companies and organizations by providing a business name and no first/last names.

  • 2) When a fundraising page is deleted, historical feed items for it are removed as well.

    3) Make supporter opt_in attribute updatable.

    4) Make transaction items attribute updatable for offline transactions.

  • Bug Fix:

    1) "In honor of" information now available for feed items, where relevant.

    2) Fixed bug where fee estimation double-counted credit card fee percent in some cases.

    3) Removed errant record in APIv1 => APIv2 migration guide for ticket types.

    4) Prevent publishing of a campaign if organization does not have an active payment provider configuration.

Q3 2016

  • Enhancement:

    1) Allow members to delete their own comments from activity feeds.

    2) New attribute to set policy for allowing/disallowing fundraising page creation on campaigns.

  • Bug Fix:

    Fixed bug where some campaigns could not be successfully saved.

  • Enhancement:

    1) Short URL's are now set at the organization level, instead of platform wide.

    2) Expanded Google analytics endpoint.

  • Bug Fix:

    Fixed compatibility issues with Activity Feeds.

  • Bug Fix:

    Allow organization security settings to be set throught the API's. Specifically, this is the setting to allow/disallow fundraisers to send customized emails through their fundraising pages.

  • Enhancement:

    Added "created_at" attribute to responses for fundraising page resources.

  • Bug Fix:

    1) Fixed bug where international addresses would fail validation incorrectly on transactions.

    2) Relaxed validation of entities that have a state/province attribute that was previously too strict.

  • Deprecated:

  • "started_at" attribute of fundraising pages has been removed.

  • Enhancement:

    Overview endpoints (fundraising team, campaign) will break out amount raised by registrations/tickets vs donations.

  • Bug Fix:

    1) Fixed issue where some authorized members could not delete feed items that they should be able to.

  • 2) Generated transactions from Credit Adjustments are now properly dissociated from any member.

    3) Fixed issue causing some newly-created fundraising pages to associate to the incorrect member

  • Activity feed item will be hidden when transaction is voided, refunded, or chargebacked.

  • 403 Error messages have been updated to provide more information to the user

  • Bug Fix: Filtering on multiple attributes and nested elements no longer fail

  • Bug Fix: Creating a team without a team lead no longer associates team with virtual admin user

  • Bug Fix: Fixed issue where some offline transactions were syncing to Salesforce when "do not sync" was selected.

  • Bug Fix: Images no longer losing transparency when cropped in the designer tool.

  • Bug Fix: DonateDouble transaction matches are no longer repeating on the activity feed.

  • Bug Fix: DonateDouble matches no longer creating $0 transactions on the activity feed after match limit has been met.

  • For Crowdfunding and new Peer-to-Peer, activity feed will update when underlying data is changed. Example: when donor name is edited or when a transaction is moved from one fundraising entity to another (aka hard credit transfer)

  • GET /campaigns/ID/registrations added to documentation

  • Bug Fix: Can now update thank_you_text attribute on POST/PUT /fundraising-teams endpoints.

  • Bug Fix: Using filters on GET /campaigns/ID/questions endpoints no longer generates 500 errors.

  • Bug Fix: Campaign admins are no longer accounted in total number of global admins

  • Bug Fix: Error messages were updated to provide more useful error messages specific to the workflow

  • POST /organizations/#/supporters allows organizations to create new supporters directly through the API.

  • POST /organizations/#/security-settings
    GET /organizations/#/security-settings
    Organization attribute allow_custom_email_content now surfaced and updatable through API. If set to FALSE, a fundraiser can only send "canned" emails from their fundraising page to potential donors/supporters.

  • Created offline transactions can now suppress synching to third party services (e.g. Salesforce) by providing the parameter "sync_third_party" with the value FALSE.

  • Bug Fix: Updated validations and responses for Dedications

  • Bug Fix: Overview endpoints now correctly account for soft credits.

  • Fixed bug that caused some incomplete transactions to create activity feed entries.

  • New Fields for Default Appeal Email Text on Campaign Resources

    • default_team_thank_you_email

    • default_team_appeal_email

    • default_page_thank_you_email

    • default_page_appeal_email

  • Fixed bug so that all offline transactions automatically default to "success" status.

  • Overhead/Host fees now appear in transaction resource requests

  • Missing address fields on PDF receipts added back into donation receipts

  • Bug Fix: Fundraising team results no longer omitting teams with some inactive statuses

  • GET /organizations/{org_id}/supporters?filter=member_d%3D{member_id} fetches supporter information with member ID

  • Fixed bug that prevented certain fundraising pages from joining teams

  • Fixed bug that prevented some suppression of activity feed items to be ignored

    New Endpoints for Aggregate Data

    1. GET /fundraising-teams/#/overview

    2. GET /fundraising-pages/#/overview

    New Endpoints for Fetching the Pages and Teams a Member is Associated With

    1. GET /members/#/fundraising-pages

    2. GET /members/#/fundraising-teams

    • Fix released to prevent error when fetching transactions with answers for some custom questions

    • Users can fetch supporter information when fetching a fundraising page or transaction (using with=supporter)

    • Users can post comments in response to feedItems on a fundraising entity's feed

    • Team member count added to fundraising team responses

    • Team captain can set default acknowledgement text

    • Count of acknowledgements added to transaction responses

    • Organization administrators can reorganize team hierarchies

    • Statistics added to /campaigns/#/overview endpoint: total number of donors and fundraisers, as well as total number of fundraisers joined over time

    • Fundraising page endpoints support joining/leaving/changing teams

    • New endpoint added for thank you/acknowledgement of transactions

    Q2 2016

    • Fundraising team endpoints can store/fetch a logo and cover photo to be displayed on leaderboards

    • with=supporters returns contact/supporter information for transaction and fundraising page endpoints

    • PUT fundraising pages endpoint can change status of fundraising page

    • Endpoint added to find member record by email address

    • New endpoint added to create, update, and delete comments on activity feeds and activity

    Q1 2016

    This marks the public launch of the new Classy API (v2). Built with RESTful methodologies, we think you will love its power and flexibility.

    We will regularly add new functionalities and endpoints to the API based on your feedback and the latest features of the Classy platform. Use this page to keep up with new functionalities and get a heads up on what to expect in the documentation.

    For a behind-the-scenes look at what went into creating the new API and what where we hope you take it in the future, read this interview with lead API engineer, Chris Beck.



    Email us at api@classy.org