{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/adyen/main/json-schema/adyen-donation-request-schema.json",
  "title": "DonationRequest",
  "x-generated": "2026-10-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/adyen-donate-api-openapi.yml#/components/schemas/DonationRequest",
  "properties": {
    "donationAccount": {
      "description": "The Adyen account name of the charity.",
      "type": "string"
    },
    "merchantAccount": {
      "description": "The merchant account that is used to process the payment.",
      "type": "string"
    },
    "modificationAmount": {
      "description": "The amount to be donated.The `currency` must match the currency used in authorisation, the `value` must be smaller than or equal to the authorised amount.",
      "$ref": "#/$defs/Amount"
    },
    "originalReference": {
      "description": "The original pspReference of the payment to modify.\nThis reference is returned in:\n* authorisation response\n* authorisation notification\n\n",
      "type": "string"
    },
    "platformChargebackLogic": {
      "x-addedInVersion": "68",
      "description": "Defines how to book chargebacks when using [Adyen for Platforms](https://docs.adyen.com/marketplaces-and-platforms/processing-payments#chargebacks-and-disputes).",
      "$ref": "#/$defs/PlatformChargebackLogic"
    },
    "reference": {
      "description": "Your reference for the payment modification. This reference is visible in Customer Area and in reports.\nMaximum length: 80 characters.",
      "type": "string"
    }
  },
  "required": [
    "merchantAccount",
    "donationAccount",
    "modificationAmount"
  ],
  "type": "object",
  "$defs": {
    "Amount": {
      "properties": {
        "currency": {
          "description": "The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes).",
          "maxLength": 3,
          "minLength": 3,
          "type": "string"
        },
        "value": {
          "description": "The amount of the transaction, in [minor units](https://docs.adyen.com/development-resources/currency-codes).",
          "format": "int64",
          "type": "integer"
        }
      },
      "required": [
        "value",
        "currency"
      ],
      "type": "object"
    },
    "PlatformChargebackLogic": {
      "properties": {
        "behavior": {
          "x-addedInVersion": "68",
          "description": "The method of handling the chargeback.\n\nPossible values: **deductFromLiableAccount**, **deductFromOneBalanceAccount**, **deductAccordingToSplitRatio**.",
          "enum": [
            "deductAccordingToSplitRatio",
            "deductFromLiableAccount",
            "deductFromOneBalanceAccount"
          ],
          "type": "string"
        },
        "costAllocationAccount": {
          "x-addedInVersion": "68",
          "description": "The unique identifier of the balance account to which the chargeback fees are booked. By default, the chargeback fees are booked to your liable balance account.",
          "type": "string"
        },
        "targetAccount": {
          "x-addedInVersion": "68",
          "description": "The unique identifier of the balance account against which the disputed amount is booked.\n\nRequired if `behavior` is **deductFromOneBalanceAccount**.",
          "type": "string"
        }
      },
      "type": "object"
    }
  }
}