{
    "openapi": "3.0.3",
    "info": {
        "title": "Get Ticket Event Donations",
        "description": "Get donations for a ticket event.",
        "version": "1.0.0",
        "contact": {
            "name": "RunSignup API Support",
            "url": "https://runsignup.com/API",
            "email": "info@runsignup.com"
        }
    },
    "servers": [
        {
            "url": "https://api.runsignup.com/rest",
            "description": "Production API Server"
        }
    ],
    "tags": [
        {
            "name": "Donations",
            "description": "APIs related to Donations"
        }
    ],
    "components": {
        "schemas": {
            "Error": {
                "type": "object",
                "properties": {
                    "error": {
                        "type": "string",
                        "description": "Error message"
                    },
                    "details": {
                        "type": "object",
                        "description": "Additional error details",
                        "additionalProperties": true
                    }
                },
                "required": [
                    "error"
                ]
            },
            "BadRequestError": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Error"
                    },
                    {
                        "description": "Error indicating invalid request parameters or structure"
                    }
                ]
            },
            "UnauthorizedError": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Error"
                    },
                    {
                        "description": "Error indicating authentication failure"
                    }
                ]
            },
            "ForbiddenError": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Error"
                    },
                    {
                        "description": "Error indicating the authenticated user lacks required permissions"
                    }
                ]
            },
            "NotFoundError": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Error"
                    },
                    {
                        "description": "Error indicating the requested resource does not exist"
                    }
                ]
            },
            "ServerError": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Error"
                    },
                    {
                        "description": "Error indicating an unexpected server-side issue"
                    }
                ]
            },
            "V2TicketsDonationsGetDonationsGetResponse": {
                "type": "object",
                "title": "Get Ticket Event Donations Response",
                "description": "List of donations for a ticket event",
                "properties": {
                    "donations": {
                        "type": "array",
                        "description": "Donations for the ticket event",
                        "items": {
                            "type": "object",
                            "description": "A ticket event donation",
                            "properties": {
                                "donation_id": {
                                    "type": "integer",
                                    "description": "Donation ID"
                                },
                                "ticket_purchase_id": {
                                    "type": "integer",
                                    "description": "Ticket purchase the donation was made alongside (null when the donation was not part of a ticket purchase)",
                                    "nullable": true
                                },
                                "user_id": {
                                    "type": "integer",
                                    "description": "ID of the user who made the donation"
                                },
                                "first_name": {
                                    "type": "string",
                                    "description": "Donor first name"
                                },
                                "last_name": {
                                    "type": "string",
                                    "description": "Donor last name"
                                },
                                "email": {
                                    "type": "string",
                                    "description": "Donor email"
                                },
                                "phone": {
                                    "type": "string",
                                    "description": "Donor phone (null when not provided)",
                                    "nullable": true
                                },
                                "donation_date_ts": {
                                    "type": "integer",
                                    "description": "Donation timestamp"
                                },
                                "rsu_transaction_id": {
                                    "type": "integer",
                                    "description": "RSU transaction ID (null when there is no associated transaction)",
                                    "nullable": true
                                },
                                "donation_amount_in_cents": {
                                    "type": "integer",
                                    "description": "Donation amount in cents"
                                },
                                "processing_fee_in_cents": {
                                    "type": "integer",
                                    "description": "Processing fee in cents"
                                },
                                "partner_fee_in_cents": {
                                    "type": "integer",
                                    "description": "Partner fee in cents"
                                },
                                "amount_paid_in_cents": {
                                    "type": "integer",
                                    "description": "Amount paid in cents"
                                },
                                "status_code": {
                                    "type": "string",
                                    "description": "Donation status code (0=Cleared, 1=Active, 2=Refunded, 3=Deleted)",
                                    "enum": [
                                        0,
                                        1,
                                        2,
                                        3
                                    ]
                                },
                                "on_behalf_of": {
                                    "type": "string",
                                    "description": "Name the donation was made on behalf of (null when not provided)",
                                    "nullable": true
                                },
                                "use_designation_id": {
                                    "type": "integer",
                                    "description": "Use designation ID (null when the donation has no use designation)",
                                    "nullable": true
                                },
                                "use_designation_label": {
                                    "type": "string",
                                    "description": "Use designation label (null when the donation has no use designation)",
                                    "nullable": true
                                },
                                "is_manual_import": {
                                    "type": "string",
                                    "description": "\"T\" when the donation was manually imported, \"F\" otherwise",
                                    "enum": [
                                        "T",
                                        "F"
                                    ]
                                }
                            },
                            "required": [
                                "donation_id",
                                "ticket_purchase_id",
                                "user_id",
                                "first_name",
                                "last_name",
                                "email",
                                "phone",
                                "donation_date_ts",
                                "rsu_transaction_id",
                                "donation_amount_in_cents",
                                "processing_fee_in_cents",
                                "partner_fee_in_cents",
                                "amount_paid_in_cents",
                                "status_code",
                                "on_behalf_of",
                                "use_designation_id",
                                "use_designation_label",
                                "is_manual_import"
                            ]
                        }
                    },
                    "next_url": {
                        "type": "string",
                        "description": "URL to fetch the next page of results; present only when more results are available"
                    }
                },
                "required": [
                    "donations"
                ],
                "example": {
                    "donations": [
                        {
                            "donation_id": 123,
                            "ticket_purchase_id": 456,
                            "user_id": 789,
                            "first_name": "Jane",
                            "last_name": "Doe",
                            "email": "jane.doe@example.com",
                            "phone": "555-555-5555",
                            "donation_date_ts": 1712345678,
                            "rsu_transaction_id": 1011,
                            "donation_amount_in_cents": 5000,
                            "processing_fee_in_cents": 240,
                            "partner_fee_in_cents": 0,
                            "amount_paid_in_cents": 5240,
                            "status_code": 1,
                            "on_behalf_of": "Someone",
                            "use_designation_id": 22,
                            "use_designation_label": "General Fund",
                            "is_manual_import": "F"
                        }
                    ],
                    "next_url": "https://example.com/Rest/v2/tickets/donations/get-donations.json?ticket_event_id=1&next_token=eyJ2IjoxLCJkb25hdGlvbl90cyI6MTcxMjM0NTY3OCwiZG9uYXRpb25faWQiOjEyM30"
                }
            }
        },
        "securitySchemes": {
            "apiKey": {
                "type": "apiKey",
                "in": "query",
                "name": "api_key",
                "description": "RunSignup API Key"
            },
            "apiSecret": {
                "type": "apiKey",
                "in": "query",
                "name": "api_secret",
                "description": "RunSignup API Secret"
            }
        }
    },
    "paths": {
        "/v2/tickets/donations/get-donations.json": {
            "get": {
                "tags": [
                    "Donations"
                ],
                "summary": "Get Ticket Event Donations",
                "description": "Get donations for a ticket event.",
                "operationId": "v2_tickets_donations_get_donations_json",
                "parameters": [
                    {
                        "name": "ticket_event_id",
                        "in": "query",
                        "description": "ID of ticket event.",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "rsu_api_key",
                        "in": "query",
                        "description": "API key.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "X-RSU-API-SECRET",
                        "in": "header",
                        "description": "API secret.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "num",
                        "in": "query",
                        "description": "Number of results per page (max 500).",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": "100"
                        }
                    },
                    {
                        "name": "min_donation_ts",
                        "in": "query",
                        "description": "Get donations on or after the provided timestamp.",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "max_donation_ts",
                        "in": "query",
                        "description": "Get donations on or before the provided timestamp.",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "next_token",
                        "in": "query",
                        "description": "Opaque pagination cursor from the previous response's <code>next_url</code>. Omit to fetch the first page.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "security": [
                    {
                        "apiKey": [],
                        "apiSecret": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Get Ticket Event Donations Response - List of donations for a ticket event",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/V2TicketsDonationsGetDonationsGetResponse"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/BadRequestError"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/UnauthorizedError"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ForbiddenError"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/NotFoundError"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ServerError"
                                }
                            }
                        }
                    }
                },
                "x-permissions": []
            }
        }
    }
}