---
title: "Update a donation and its associated recurring plan"
method: POST
path: "/v1/donations/{id}"
tags: ["Donations"]
---

# Update a donation and its associated recurring plan

`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.
<p class="callout callout--warning">This action is only available within 24 hours of the donation being created.<br/><br/>Donations created outside of the API, such as through the Checkout modal, Campaign Page, or Virtual Terminal, cannot be edited through the API.</p>

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.

## Path parameters

- `id` string, required

## Request body

- UpdateDonationRequest — Contains the request parameters for updating a donation.
  - `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.
  - `comment` string, nullable — Updated comment, maximum 256 characters.
  - `custom_fields` CustomFieldPutRequest[] — Array of custom fields
    - `name` string, required — Name of the custom field.
    - `value` string, required — Value of the custom field.
  - `designation` string — The ID of the fund, program, or initiative the donation goes to. You can use the ID of any designation created in your account, whether or not it is linked to a campaign. Only one designation can be set for a single donation. To create multiple donations with different designations, make separate API calls. You can find the ID in the [Designations section of the Dashboard](https://dashboard.fundraiseup.com/designations).
  - `livemode` boolean — Specifies whether the request is executed in live or test mode. Required for API keys created after 30th January 2026.
  - `questions` QuestionPutRequest[]
    - `id` string, required — Unique identifier of the question, formatted as Q[A-Z]{7}. Located in [Settings > Questions.](https://dashboard.fundraiseup.com/settings/questions).
    - `checked` boolean — Indicates whether the checkbox is selected. Required for question types “Checkbox”.
    - `date` string — Answer for the question in date format (YYYY-MM-DD). Required for questions with the type “Date”.
    - `options` string[] — List of selected options. Required for question types “Select multiple options” or “Checkbox”.
    - `text` string — Answer for the question, maximum 256 characters. Required for questions with types “Text box”, “Text line”, “Select one option”, and “Dropdown menu”.
  - `supporter` SupporterRequest — Represents the personal data of the supporter. Only the specified parameters are updated, the others remain unchanged.
    - `address` SupporterAddressPutRequest — Represents the mailing address of the supporter. This field is required if the campaign requires a mailing address, based on the “Ask for mailing address” setting and the minimum amount that triggers the request. To remove the address, pass `null` for `supporter.address`.
      - `city` string — Supporter's city. Maximum 64 characters.
      - `country` string — [Two-letter country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), lowercase.
      - `line1` string — The first line of the supporter's mailing address, typically including the street address. Maximum 256 characters.
      - `line2` string, nullable — The second line of the supporter's mailing address, typically including the street address. Maximum 256 characters.
      - `postal_code` string — Supporter's postal code. Maximum 10 characters.
      - `region` string, nullable — Supporter's region. Maximum 64 characters. Required for all countries except `gb` (United Kingdom), `il` (Israel), `nl` (Netherlands), `fr` (France), `de` (Germany). Can be: region, state, or province.
    - `email` string, nullable — Supporter's email address. Maximum 254 characters.
    - `employer` SupporterEmployerPostRequest — Contains information about the supporter's employer.
      - `name` string, required — The name of the organization or company where the supporter works. Maximum 64 characters.
    - `employment_status` 'employed' | 'unemployed' | 'retired', nullable — The supporter's employment status. Required for US political organizations. Possible values: `employed`, `unemployed`, `retired`.
    - `first_name` string — Supporter's first name. Maximum 256 characters.
    - `last_name` string — Supporter's last name. Maximum 256 characters.
    - `occupation` string, nullable — The supporter's occupation. Required when `employment_status` is `employed`. Max 200 characters.
    - `phone` string, nullable — Supporter's phone number. Maximum 20 characters. Only included 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.
    - `title` 'm' | 'mme' | 'mlle' | 'autre' | 'mx' | 'mr' | 'mrs' | 'miss' | 'ms' | 'sir' | 'dame' | 'lord' | 'lady' | 'dr' | 'prof' | 'rev' | 'fr' | 'dcn' | 'br' | 'sr' | 'frau' | 'herr' | 'frau dr.' | 'herr dr.' | 'frau prof.' | 'herr prof.', nullable — 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:** `frau`, `herr`, `frau dr.`, `herr dr.`, `frau prof.`, `herr prof.` - **Austria:** `herr`, `frau` - **Canada (French):** `m`, `mme`, `mlle`, `autre`

## Response `200`

On success, the API returns the donation object. If the parameters are invalid, the call will return an error.

- DonationResponse — Contains donation record with all donation details.
  - `account` AccountResponse, required — Organization account information.
    - `code` string, nullable, required — Custom identifier for the organization, set as the Account code in the Fundraise Up account.
    - `id` string, required — Unique identifier of the organization in the format A[A-Z]{7}.
    - `name` string, required — The name of the organization as set in the Fundraise Up account.
  - `amount` string, required — Donation amount in the transaction currency.
  - `amount_before_fees_covered` string, required — Amount before fees were covered by supporter.
  - `amount_before_fees_covered_in_default_currency` string, required — Donation amount before any fees were covered by the supporter. Displayed in the organization's default currency at the time of donation.
  - `amount_in_default_currency` string, required — Donation amount converted to the organization's default currency.
  - `anonymous` boolean, required — Indicates if the donation was made anonymously (`true`) or not (`false`).
  - `benefit` union, required
    - object — Represents the benefit associated with a donation.
      - `state` 'not_shown', required — Defines if the benefit was displayed or selected.
    - object — Represents the benefit associated with a donation.
      - `state` 'shown_not_selected', required — Defines if the benefit was displayed or selected.
    - object — Represents the benefit associated with a donation.
      - `code` string, nullable, required — Benefit code, as set in the Dashboard.
      - `fair_market_value` string, required — Fair market value (FMV) at the time of payment. If an option was selected, this is the value of that option. Displayed in the organization’s default currency.
      - `fair_market_value_currency` 'shp' | 'eur' | 'aed' | 'afn' | 'xcd' | 'all' | 'amd' | 'aoa' | 'ars' | 'usd' | 'aud' | 'ang' | 'xcg' | 'awg' | 'azn' | 'bam' | 'bbd' | 'inr' | 'pkr' | 'bdt' | 'xof' | 'bgn' | 'bhd' | 'bif' | 'bmd' | 'myr' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'btn' | 'nok' | 'zar' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'xaf' | 'chf' | 'nzd' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'mad' | 'etb' | 'fjd' | 'fkp' | 'jpy' | 'gbp' | 'gel' | 'ghs' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'hrk' | 'htg' | 'huf' | 'idr' | 'ils' | 'isk' | 'jmd' | 'jod' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kwd' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mro' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'mzn' | 'nad' | 'xpf' | 'ngn' | 'nio' | 'sek' | 'npr' | 'omr' | 'pab' | 'pen' | 'pgk' | 'php' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sgd' | 'sll' | 'sle' | 'sos' | 'srd' | 'std' | 'svc' | 'szl' | 'thb' | 'tjs' | 'tnd' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'yer' | 'zmw' | 'btc' | 'eth' | 'usdt' | 'usdc' | 'sol' | 'dot' | 'doge' | 'shib' | 'ltc' | 'bch' | 'xtz' | 'fil' | 'ftm' | 'gala' | 'paxg' | 'zec', required — Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) of the fair market value (FMV) currency, in lowercase.
      - `id` string, required — Unique identifier for the benefit.
      - `name` string, required — Benefit name, as set in the Dashboard.
      - `option` BenefitOption, required — Benefit option selected by the supporter.
        - `code` string, nullable, required — Code of the selected option.
        - `name` string, required — Name of the selected option.
        - `value` string, required — Value of the selected option.
      - `shipping` BenefitShipping, required — Shipping data of the benefit.
        - `address` AddressResponse, required — Contains the mailing address details.
          - `city` string, nullable, required — City name
          - `country` string, required — [Two-letter country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), in lowercase.
          - `line1` string, nullable, required — First address line.
          - `line2` string, nullable, required — Second address line.
          - `postal_code` string, nullable, required — Postal or ZIP code.
          - `region` string, nullable, required — Can refer to a region, state, or province.
        - `recipient_first_name` string, required — Recipient first name.
        - `recipient_last_name` string, required — Recipient last name.
      - `state` 'selected', required — Defines if the benefit was displayed or selected.
  - `campaign` CampaignResponse, required — Provides details about the campaign.
    - `code` string, nullable, required — Campaign code, as set in the Dashboard.
    - `id` string, required — Unique campaign identifier.
    - `name` string, required — Campaign name.
  - `comment` string, nullable, required — Optional comment provided by the supporter at the time of donation.
  - `consent` CommunicationConsentResponse, required — Stores the supporter's [communication consent type](https://fundraiseup.com/docs/marketing-consent/) associated with a donation.
    - `customized` CustomizedCommunicationConsentResponse — Specifies consent values for individual communication channels.
      - `email` 'not_submitted' | 'opted_in' | 'opted_out', required — Indicates email communication consent. `opted_in` if the supporter agreed to receive emails. `opted_out` if the supporter declined email communication. `not_submitted` if no email consent data is available.
      - `phone_calls` 'not_submitted' | 'opted_in' | 'opted_out', required — Indicates phone call communication consent. `opted_in` if the supporter agreed to receive phone calls. `opted_out` if the supporter declined to receive phone calls. `not_submitted` if no phone call consent data is available.
      - `postal_mail` 'not_submitted' | 'opted_in' | 'opted_out', required — Indicates postal mail communication consent. `opted_in` if the supporter agreed to receive postal mail. `opted_out` if the supporter declined to receive postal mail. `not_submitted` if no postal mail consent data is available.
      - `sms` 'not_submitted' | 'opted_in' | 'opted_out', required — Indicates SMS communication consent. `opted_in` if the supporter agreed to receive SMS messages. `opted_out` if the supporter declined SMS communication. `not_submitted` if no SMS consent data is available.
      - `social_media` 'not_submitted' | 'opted_in' | 'opted_out', required — Indicates social media communication consent. `opted_in` if the supporter agreed to receive messages through social media. `opted_out` if the supporter declined social media communication. `not_submitted` if no social media consent data is available.
    - `general` 'not_submitted' | 'opted_in' | 'opted_out' — Indicates overall communication consent. `opted_in` if the supporter agreed to receive communications. `opted_out` if the supporter declined communications. `not_submitted` if no consent data is available.
  - `created_at` string, required — Timestamp in ISO 8601 format, indicating when the donation was created in UTC.
  - `currency` 'shp' | 'eur' | 'aed' | 'afn' | 'xcd' | 'all' | 'amd' | 'aoa' | 'ars' | 'usd' | 'aud' | 'ang' | 'xcg' | 'awg' | 'azn' | 'bam' | 'bbd' | 'inr' | 'pkr' | 'bdt' | 'xof' | 'bgn' | 'bhd' | 'bif' | 'bmd' | 'myr' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'btn' | 'nok' | 'zar' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'xaf' | 'chf' | 'nzd' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'mad' | 'etb' | 'fjd' | 'fkp' | 'jpy' | 'gbp' | 'gel' | 'ghs' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'hrk' | 'htg' | 'huf' | 'idr' | 'ils' | 'isk' | 'jmd' | 'jod' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kwd' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mro' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'mzn' | 'nad' | 'xpf' | 'ngn' | 'nio' | 'sek' | 'npr' | 'omr' | 'pab' | 'pen' | 'pgk' | 'php' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sgd' | 'sll' | 'sle' | 'sos' | 'srd' | 'std' | 'svc' | 'szl' | 'thb' | 'tjs' | 'tnd' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'yer' | 'zmw' | 'btc' | 'eth' | 'usdt' | 'usdc' | 'sol' | 'dot' | 'doge' | 'shib' | 'ltc' | 'bch' | 'xtz' | 'fil' | 'ftm' | 'gala' | 'paxg' | 'zec', required — Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase.
  - `custom_fields` CustomFieldResponse[], required
    - `name` string, required — Name of the custom field.
    - `value` string, required — Value of the custom field.
  - `designation` DesignationResponse, required — Contains information about the designation.
    - `code` string, nullable, required — Designation code.
    - `id` string, required — Unique designation identifier.
    - `name` string, nullable, required — Designation name.
  - `device` DeviceResponse, required — Provides information about the device being used.
    - `browser` string, nullable, required — Browser name. Can be `null` if not detected.
    - `ip` IpResponse, required — Contains details about the IP address from which the donation was made.
      - `address` string, nullable, required — IP address.
      - `city` string, nullable, required — City name.
      - `country_name` string, nullable, required — Full country name.
      - `region` string, nullable, required — Region name.
    - `os` string, nullable, required — Operating system name. Can be `null` if not detected.
    - `type` 'desktop' | 'mobile' | 'tablet', nullable, required — Device type. Can be `null` if not detected.
    - `user_agent` string, nullable, required — Raw user agent string. Can be `null` if not provided.
  - `element` ElementResponse, required — Represents the element through which the donation was made.
    - `id` string, required — Unique element identifier.
    - `name` string, required — Name of the element.
    - `type` 'reminder' | 'donateButton' | 'stickyButton' | 'imageCard' | 'textLink' | 'donationForm' | 'simpleForm' | 'goalMeter' | 'statCounter' | 'impactSlider' | 'donationLevels' | 'buttonGroup' | 'floatingButton' | 'messageBar' | 'topSupporters' | 'topLocations' | 'socialProof' | 'qrCode' | 'recentDonations' | 'p2pButton' | 'p2pLink' | 'p2pFundraisingButton' | 'p2pFundraisingLink' | 'topFundraisers' | 'donorMap' | 'lightbox' | 'zakatCalculator' | 'p2pFundraiserGallery' | 'p2pTopFundraisers' | 'fundraisingPageLink' | 'fundraisingPageInviteLink' | 'link' | 'direct' | 'debugPanel' | 'testModePanel' | 'aiAssistant' | 'splitTesting' | 'jsApi', required — Type of element used for the donation.
  - `failed_at` string, nullable, required — Timestamp in ISO 8601 format, indicating when the donation failed in UTC.
  - `fundraiser` FundraiserResponse, required — Contains information about the fundraiser.
    - `id` string, required — Unique identifier for the fundraiser.
    - `name` string, required — The title of the Fundraiser, used as its main heading.
  - `gift_aid` GiftAidResponse, required — Provides details about Gift Aid, available only for organizations based in Great Britain.
    - `claimed` boolean, nullable, required — Indicates whether the Gift Aid was claimed (`true`) or not (`false`).
    - `legal_text` string, required — Legal text associated with Gift Aid.
  - `id` string, required — Unique identifier for the donation.
  - `installment` string, nullable, required — Indicates the installment number for recurring donations. Returns `null` for one-time donations.
  - `livemode` boolean, required — Test mode indicator. `true` for live mode donations, `false` for test mode donations.
  - `on_behalf_of` string, nullable, required — Name of the organization the donation was made on behalf of.
  - `payment` ChargePaymentResponse, required — Provides details about the payment processing.
    - `bank_account` BankAccountResponse, required — Contains information about the bank account used for the payment.
      - `last4` string, nullable, required — Last four digits of the bank account number.
    - `credit_card` CreditCardResponse, required — Contains information about the credit card used for the payment.
      - `exp_month` string, nullable, required — Two-digit expiration month (`01` to `12`).
      - `exp_year` string, nullable, required — Four-digit expiration year.
      - `last4` string, nullable, required — Last four digits of the credit card number.
      - `type` string, nullable, required — Credit card type. Possible values: `Visa`, `MasterCard`, `American Express`, `Diners Club`, `Discover`, `JCB`, `UnionPay`, `Cartes Bancaires`, `Unknown`.
    - `daf_external_id` string, nullable, required — The external grant ID assigned by Chariot to the Donor-Advised Fund (DAF) grant. Returns `null` unless `payment.method` is `daf`.
    - `daf_sponsor_fund` string, nullable, required — The name of the Donor-Advised Fund (DAF) sponsor organization. Returns `null` unless `payment.method` is `daf`.
    - `daf_tracking_id` string, nullable, required — The Chariot tracking ID of the Donor-Advised Fund (DAF) grant. Returns `null` unless `payment.method` is `daf`.
    - `email` string, nullable, required — Email associated with the payment method.
    - `error_message` string, nullable, required — Most recent payment error message. Returned only if the status is `failed` or `retrying`. Otherwise, returns `null`.
    - `id` string, nullable, required — For PayPal: Capture ID. For Stripe: Charge ID or Payment Intent ID. For other processors: payment ID.
    - `method` 'credit_card' | 'apple_pay' | 'google_pay' | 'click_to_pay' | 'ach' | 'paypal' | 'venmo' | 'becs_direct_debit' | 'bacs_direct_debit' | 'pad' | 'sepa_direct_debit' | 'ideal' | 'crypto' | 'stock' | 'link' | 'twint' | 'mobile_pay' | 'eps' | 'daf', required — Payment method, in lowercase underscore. `stock` is deprecated but may still appear in retrieved data. The value of `us_bank_account` maps to `ach`. The value of `plaid` also maps to `ach`.
    - `processor` 'stripe' | 'paypal' | 'gemini' | 'manual_brokerage' | 'coinbase_commerce' | 'chariot', required — Payment processor, in lowercase. `coinbase_commerce` is deprecated but may still appear in retrieved data.
  - `payout` PayoutResponse, required — Contains information about the payout details.
    - `amount` string, required — Payout amount in the donation's currency.
    - `amount_in_default_currency` string, required — Payout amount in the organization's default currency at the time of donation.
    - `currency` 'shp' | 'eur' | 'aed' | 'afn' | 'xcd' | 'all' | 'amd' | 'aoa' | 'ars' | 'usd' | 'aud' | 'ang' | 'xcg' | 'awg' | 'azn' | 'bam' | 'bbd' | 'inr' | 'pkr' | 'bdt' | 'xof' | 'bgn' | 'bhd' | 'bif' | 'bmd' | 'myr' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'btn' | 'nok' | 'zar' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'xaf' | 'chf' | 'nzd' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'mad' | 'etb' | 'fjd' | 'fkp' | 'jpy' | 'gbp' | 'gel' | 'ghs' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'hrk' | 'htg' | 'huf' | 'idr' | 'ils' | 'isk' | 'jmd' | 'jod' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kwd' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mro' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'mzn' | 'nad' | 'xpf' | 'ngn' | 'nio' | 'sek' | 'npr' | 'omr' | 'pab' | 'pen' | 'pgk' | 'php' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sgd' | 'sll' | 'sle' | 'sos' | 'srd' | 'std' | 'svc' | 'szl' | 'thb' | 'tjs' | 'tnd' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'yer' | 'zmw' | 'btc' | 'eth' | 'usdt' | 'usdc' | 'sol' | 'dot' | 'doge' | 'shib' | 'ltc' | 'bch' | 'xtz' | 'fil' | 'ftm' | 'gala' | 'paxg' | 'zec', required — Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase.
  - `platform_fee` PlatformFeeResponse, required — Provides details about the platform fee charged by Fundraise Up. The `platform_fee` field will return 0 until Stripe provides the finalized fee data, which may take some time after a successful donation. To retrieve the finalized fee values, use the `Events` endpoint. Look for the `donation.success` event, which confirms that the calculated fees have been updated by Stripe.
    - `amount` string, required — Platform fee amount in the donation's currency.
    - `amount_in_default_currency` string, required — Platform fee amount converted to the organization's default currency at the time of the donation.
    - `currency` 'shp' | 'eur' | 'aed' | 'afn' | 'xcd' | 'all' | 'amd' | 'aoa' | 'ars' | 'usd' | 'aud' | 'ang' | 'xcg' | 'awg' | 'azn' | 'bam' | 'bbd' | 'inr' | 'pkr' | 'bdt' | 'xof' | 'bgn' | 'bhd' | 'bif' | 'bmd' | 'myr' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'btn' | 'nok' | 'zar' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'xaf' | 'chf' | 'nzd' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'mad' | 'etb' | 'fjd' | 'fkp' | 'jpy' | 'gbp' | 'gel' | 'ghs' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'hrk' | 'htg' | 'huf' | 'idr' | 'ils' | 'isk' | 'jmd' | 'jod' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kwd' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mro' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'mzn' | 'nad' | 'xpf' | 'ngn' | 'nio' | 'sek' | 'npr' | 'omr' | 'pab' | 'pen' | 'pgk' | 'php' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sgd' | 'sll' | 'sle' | 'sos' | 'srd' | 'std' | 'svc' | 'szl' | 'thb' | 'tjs' | 'tnd' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'yer' | 'zmw' | 'btc' | 'eth' | 'usdt' | 'usdc' | 'sol' | 'dot' | 'doge' | 'shib' | 'ltc' | 'bch' | 'xtz' | 'fil' | 'ftm' | 'gala' | 'paxg' | 'zec', required — Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase.
  - `processing_fee` ProcessingFeeResponse, required — Contains information about the processing fee charged by the payment processor. The `processing_fee` field will return 0 until Stripe provides the finalized fee data, which may take some time after a successful donation. To retrieve the finalized fee values, use the `Events` endpoint. Look for the `donation.success` event, which confirms that the calculated fees have been updated by Stripe.
    - `amount` string, required — Processing fee amount in the donation's currency.
    - `amount_in_default_currency` string, required — Platform fee amount converted to the organization’s default currency at the time of the donation.
    - `currency` 'shp' | 'eur' | 'aed' | 'afn' | 'xcd' | 'all' | 'amd' | 'aoa' | 'ars' | 'usd' | 'aud' | 'ang' | 'xcg' | 'awg' | 'azn' | 'bam' | 'bbd' | 'inr' | 'pkr' | 'bdt' | 'xof' | 'bgn' | 'bhd' | 'bif' | 'bmd' | 'myr' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'btn' | 'nok' | 'zar' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'xaf' | 'chf' | 'nzd' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'mad' | 'etb' | 'fjd' | 'fkp' | 'jpy' | 'gbp' | 'gel' | 'ghs' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'hrk' | 'htg' | 'huf' | 'idr' | 'ils' | 'isk' | 'jmd' | 'jod' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kwd' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mro' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'mzn' | 'nad' | 'xpf' | 'ngn' | 'nio' | 'sek' | 'npr' | 'omr' | 'pab' | 'pen' | 'pgk' | 'php' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sgd' | 'sll' | 'sle' | 'sos' | 'srd' | 'std' | 'svc' | 'szl' | 'thb' | 'tjs' | 'tnd' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'yer' | 'zmw' | 'btc' | 'eth' | 'usdt' | 'usdc' | 'sol' | 'dot' | 'doge' | 'shib' | 'ltc' | 'bch' | 'xtz' | 'fil' | 'ftm' | 'gala' | 'paxg' | 'zec', required — Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase.
  - `questions` QuestionResponse[], required
    - `code` string, nullable, required — Question code, as set in the Dashboard.
    - `id` string, required — Unique identifier of the question, formatted as Q[A-Z]{7}. Located in [Settings > Questions](https://dashboard.fundraiseup.com/settings/questions).
    - `checked` boolean — Indicates whether the checkbox is selected. Required for questions with the type "Single checkbox".
    - `options` string[] — List of selected options. Required for questions with the type "Multiple checkboxes".
    - `text` string — Answer for the question. This field is returned only for question types "Text box", "Text line", "Select one option", and "Dropdown menu".
  - `receipt_id` string, nullable, required — Unique identifier for the donation receipt.
  - `recurring_plan` DonationRecurringPlanResponse, required — Defines the attributes of a recurring donation plan.
    - `created_at` string, required — Timestamp in ISO 8601 format, indicating when the recurring plan was created in UTC.
    - `ended_at` string, nullable, required — Timestamp in ISO 8601 format, indicating when the recurring plan ended in UTC.
    - `frequency` 'daily' | 'weekly' | 'biweekly' | 'every4weeks' | 'monthly' | 'bimonthly' | 'quarterly' | 'semiannual' | 'annual', required — Donation frequency.
    - `id` string, required — Unique identifier for the recurring donation plan.
    - `next_installment_at` string, nullable, required — Timestamp in ISO 8601 format, indicating the next scheduled donation installment in UTC.
    - `status` 'active' | 'scheduled' | 'paused' | 'retrying' | 'completed' | 'failed' | 'canceled', required — Current status of the recurring plan.
  - `refunded_at` string, nullable, required — Timestamp in ISO 8601 format, indicating when the donation was refunded in UTC.
  - `source` 'website' | 'campaign_page' | 'virtual_terminal' | 'donor_portal' | 'dashboard' | 'recurring_migration' | 'api' | 'gift_cart' | 'tap2pay' | 'p2p_fundraising' | 'giving_station' | 'agent', required — Indicates the source of the donation.
  - `source_of_funds` 'own_money' | 'on_behalf_of' | 'fundraising_or_collection', nullable, required — Indicates the source of funds for the donation in the context of Gift Aid eligibility.
  - `status` 'succeeded' | 'failed' | 'refunded' | 'pending' | 'retrying' | 'scheduled', required — Current status of the donation.
  - `succeeded_at` string, nullable, required — Timestamp in ISO 8601 format, indicating when the donation succeeded in UTC.
  - `supporter` EmbeddedSupporterResponse, required — Represents the supporter data as displayed on the Donation page in your Dashboard.
    - `address` AddressResponse, required — Contains the mailing address details.
      - `city` string, nullable, required — City name
      - `country` string, required — [Two-letter country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), in lowercase.
      - `line1` string, nullable, required — First address line.
      - `line2` string, nullable, required — Second address line.
      - `postal_code` string, nullable, required — Postal or ZIP code.
      - `region` string, nullable, required — Can refer to a region, state, or province.
    - `email` string, nullable, required — Supporter's email address.
    - `employer` EmployerResponse, required — Represents the employer information.
      - `name` string, required — Employer's name.
    - `employment_status` 'employed' | 'unemployed' | 'retired', nullable, required — The supporter's employment status at the time of the donation. Possible values: `employed`, `unemployed`, `retired`. Returns `null` if not collected. Only collected for US political organizations.
    - `first_name` string, nullable, required — Supporter's first name.
    - `id` string, required — Unique supporter identifier.
    - `language` 'en-US' | 'en-GB' | 'en-CA' | 'fr-CA' | 'fr-FR' | 'es' | 'nl' | 'no' | 'de' | 'de-x-informal' | 'fi-FI' | 'ar-001' | 'sv' | 'it' | 'pt-PT' | 'pt-BR' | 'zh-CN' | 'zh-TW' | 'ja' | 'ko' | 'hu' | 'da' | 'ru-RU' | 'es-US' | 'pl-PL' | 'he', required — Supporter's locale.
    - `last_name` string, nullable, required — Supporter's last name.
    - `occupation` string, nullable, required — The supporter's occupation at the time of the donation. Returns `null` if not collected or if employment status is `unemployed` or `retired`. Max 200 characters.
    - `phone` string, nullable, required — Supporter's phone number.
    - `title` 'm' | 'mme' | 'mlle' | 'autre' | 'mx' | 'mr' | 'mrs' | 'miss' | 'ms' | 'sir' | 'dame' | 'lord' | 'lady' | 'dr' | 'prof' | 'rev' | 'fr' | 'dcn' | 'br' | 'sr' | 'frau' | 'herr' | 'frau dr.' | 'herr dr.' | 'frau prof.' | 'herr prof.', nullable, required — Supporter's title. Returns `null` if empty.
  - `supporter_covered_fee` string, required — Amount of fees covered by the supporter.
  - `supporter_covered_fee_in_default_currency` string, required — Amount of fees covered by the supporter and converted to the organization's default currency.
  - `tribute` TributeResponse, required — Provides information about the tribute.
    - `honoree` string, required — Name of the person honored or remembered.
    - `id` string, required — Unique tribute identifier.
    - `sharing` TributeSharingResponse, required — Defines the sharing options for a tribute.
      - `from` string, nullable, required — Name of the sender.
      - `hide_amount` boolean, required — Indicates whether the donation amount should be hidden in the tribute notification sent to the recipient.
      - `message` string, nullable, required — Custom message included in the tribute.
      - `recipient` TributeRecipientResponse, required — Contains details about the tribute recipient.
        - `address` RecipientAddressResponse, required — Provides the postal address for the tribute recipient.
          - `city` string, nullable, required — City name
          - `country` string, required — [Two-letter country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), in lowercase.
          - `line1` string, nullable, required — First address line.
          - `line2` string, nullable, required — Second address line.
          - `postal_code` string, nullable, required — Postal or ZIP code.
          - `region` string, nullable, required — Can refer to a region, state, or province.
        - `email` string, nullable, required — Email address used for `email` sharing type.
        - `first_name` string, nullable, required — Tribute recipient's first name.
        - `last_name` string, nullable, required — Tribute recipient's last name.
        - `title` 'm' | 'mme' | 'mlle' | 'autre' | 'mx' | 'mr' | 'mrs' | 'miss' | 'ms' | 'sir' | 'dame' | 'lord' | 'lady' | 'dr' | 'prof' | 'rev' | 'fr' | 'dcn' | 'br' | 'sr' | 'frau' | 'herr' | 'frau dr.' | 'herr dr.' | 'frau prof.' | 'herr prof.', nullable, required — Tribute recipient's title.
      - `type` 'email' | 'address', nullable, required — Sharing method.
    - `type` 'in_honor' | 'in_memory', nullable, required — Tribute type.
  - `url` string, nullable, required — URL from which the donation was made.
  - `utm` UtmResponse, required — Represents UTM tags associated with the donation.
    - `campaign` string, nullable, required — The `utm_campaign` value, if available. Shows the name of the marketing campaign.
    - `content` string, nullable, required — The `utm_content` value, if available. Identifies which link or ad variation was clicked.
    - `medium` string, nullable, required — The `utm_medium` value, if available. Shows the type of marketing channel.
    - `source` string, nullable, required — The `utm_source` value, if available. Shows where the traffic came from.
    - `term` string, nullable, required — The `utm_term` value, if available. Shows the keywords used in a search.
  - `one_time_to_recurring_upgrade_link` string, nullable — A permanent, pre-authenticated link that the supporter can use to upgrade this donation to a recurring plan. Returned only when the request includes include=upgrade_link and the donation is eligible.

## Other responses

- `403` — Forbidden. The API key does not have permission to update donations.
- `422` — `employment_status is required for political organizations` — The account has Political Organization (US) enabled, but `employment_status` was not provided. `occupation is required when employment status is employed` — Employment status is `employed`, but `occupation` was not provided. `employer is required when employment status is employed` — Employment status is `employed`, but `employer` was not provided.

---

[API](https://skmtc.net/fundraiseup/apis/fundraise-up-api.md) · [All operations](https://skmtc.net/fundraiseup/apis/fundraise-up-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fundraiseup/fundraise-up-api/revisions/f59881dadecd/schema)
