Qgiv Events API
List, retrieve, and update fundraising events configured on a Qgiv form - pricing tiers, ticket packages, custom fields, promo codes, start/end dates, address, and receipt settings.
List, retrieve, and update fundraising events configured on a Qgiv form - pricing tiers, ticket packages, custom fields, promo codes, start/end dates, address, and receipt settings.
openapi: 3.0.3
info:
title: Qgiv API
description: >-
The Qgiv API is a token-authenticated, form-scoped service for reading and
writing data behind Qgiv (now Bloomerang Fundraising) donation forms,
events, and peer-to-peer campaigns. Qgiv was acquired by Bloomerang in
January 2024; this legacy API documented at qgiv.com/api remains the
programmatic interface for Qgiv accounts. All requests are made with HTTP
POST to https://secure.qgiv.com/admin/api, carrying a `token` field bound
to one or more forms. Input is accepted as XML or JSON via a `package`
field for write operations; output format is selected by the URL file
extension (`.xml` or `.json`), independent of the request's input format.
There is no bearer/OAuth layer, no documented API versioning scheme, and
no documented public webhook subscription endpoint - some endpoints are
modeled here directly from the vendor's own documentation examples
(marked Confirmed), and request/response bodies for write operations not
fully illustrated in the docs are modeled by API Evangelist from the
documented example payloads (marked Modeled).
version: '1.0'
contact:
name: Qgiv (Bloomerang Fundraising)
url: https://www.qgiv.com/api/
license:
name: Proprietary
url: https://www.qgiv.com/terms-of-service
servers:
- url: https://secure.qgiv.com/admin/api
description: Qgiv production API
security:
- tokenAuth: []
tags:
- name: Transactions
description: Confirmed. Read-only reporting on donation transactions.
- name: Recurring
description: Confirmed. Read-only reporting on recurring donation schedules.
- name: Refunds
description: Confirmed. Read-only reporting on refunds.
- name: Registrations
description: Confirmed. Read-only reporting on peer-to-peer registrations.
- name: Events
description: Confirmed. Manage fundraising/ticketed events.
- name: Account Settings
description: Confirmed. Read and update organization and form settings.
- name: Custom Fields
description: Confirmed. Manage custom fields on a donation form.
- name: Custom Amounts
description: Confirmed. Manage preset suggested-giving amounts.
- name: Statements
description: Confirmed. Read-only reporting on monthly processing statements.
- name: Mappings
description: Confirmed. Manage export/report mappings to external systems.
paths:
/reporting/transactions/last/{limit}:
get:
operationId: getLastTransactions
tags: [Transactions]
summary: Get last N transactions (Confirmed)
description: Returns the last [limit] transactions for the current form or organization.
parameters:
- name: limit
in: path
required: true
description: Number of transactions to return. Integer greater than 0.
schema:
type: integer
minimum: 1
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TokenOnlyRequest'
responses:
'200':
description: A list of transactions.
content:
application/json:
schema:
type: object
properties:
transactions:
type: array
items:
$ref: '#/components/schemas/Transaction'
'401':
$ref: '#/components/responses/Unauthorized'
/reporting/transactions/after/{transactionId}:
get:
operationId: getTransactionsAfterId
tags: [Transactions]
summary: Get transactions after a given ID (Confirmed)
description: Returns transactions with IDs greater than the specified transaction ID.
parameters:
- name: transactionId
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TokenOnlyRequest'
responses:
'200':
description: A list of transactions.
content:
application/json:
schema:
type: object
properties:
transactions:
type: array
items:
$ref: '#/components/schemas/Transaction'
'401':
$ref: '#/components/responses/Unauthorized'
/reporting/transactions/dates/{begin}:{end}:
get:
operationId: getTransactionsByDateRange
tags: [Transactions]
summary: Get transactions by date range (Confirmed)
description: >-
Returns transactions between begin and end dates, formatted MMDDYYYY
or MM-DD-YYYY, with optional "MMDDYYYY HHIISS" timestamps.
parameters:
- name: begin
in: path
required: true
schema:
type: string
example: '01012012'
- name: end
in: path
required: true
schema:
type: string
example: '12312012'
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TokenOnlyRequest'
responses:
'200':
description: A list of transactions.
content:
application/json:
schema:
type: object
properties:
transactions:
type: array
items:
$ref: '#/components/schemas/Transaction'
'401':
$ref: '#/components/responses/Unauthorized'
/reporting/transactions/{id}:
get:
operationId: getTransaction
tags: [Transactions]
summary: Get a single transaction (Confirmed)
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TokenOnlyRequest'
responses:
'200':
description: The requested transaction.
content:
application/json:
schema:
type: object
properties:
transaction:
$ref: '#/components/schemas/Transaction'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/reporting/recurring/list:
post:
operationId: listRecurringTransactions
tags: [Recurring]
summary: List all recurring transactions (Confirmed)
description: Returns all recurring transactions for the current form or organization, plus an upcoming billing forecast by month.
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TokenOnlyRequest'
responses:
'200':
description: Recurring transactions and forecast.
content:
application/json:
schema:
type: object
properties:
forecast:
type: object
additionalProperties:
type: string
recurringTransactions:
type: array
items:
$ref: '#/components/schemas/RecurringTransaction'
'401':
$ref: '#/components/responses/Unauthorized'
/reporting/recurring/{status}:
post:
operationId: listRecurringTransactionsByStatus
tags: [Recurring]
summary: List recurring transactions by status (Confirmed)
parameters:
- name: status
in: path
required: true
schema:
type: string
enum: [active, paused, expired, deleted]
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TokenOnlyRequest'
responses:
'200':
description: Recurring transactions matching the status.
content:
application/json:
schema:
type: object
properties:
recurringTransactions:
type: array
items:
$ref: '#/components/schemas/RecurringTransaction'
'401':
$ref: '#/components/responses/Unauthorized'
/reporting/recurring/{id}:
post:
operationId: getRecurringTransaction
tags: [Recurring]
summary: Get a single recurring transaction (Confirmed)
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TokenOnlyRequest'
responses:
'200':
description: The requested recurring transaction.
content:
application/json:
schema:
type: object
properties:
recurring:
$ref: '#/components/schemas/RecurringTransaction'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/reporting/refunds/last/{limit}:
post:
operationId: getLastRefunds
tags: [Refunds]
summary: Get last N refunds (Confirmed)
parameters:
- name: limit
in: path
required: true
schema:
type: integer
minimum: 1
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TokenOnlyRequest'
responses:
'200':
description: A list of refunds.
content:
application/json:
schema:
type: object
properties:
refunds:
type: array
items:
$ref: '#/components/schemas/Refund'
'401':
$ref: '#/components/responses/Unauthorized'
/reporting/refunds/after/{refundId}:
post:
operationId: getRefundsAfterId
tags: [Refunds]
summary: Get refunds after a given ID (Confirmed)
parameters:
- name: refundId
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TokenOnlyRequest'
responses:
'200':
description: A list of refunds.
content:
application/json:
schema:
type: object
properties:
refunds:
type: array
items:
$ref: '#/components/schemas/Refund'
'401':
$ref: '#/components/responses/Unauthorized'
/reporting/refunds/dates/{begin}:{end}:
post:
operationId: getRefundsByDateRange
tags: [Refunds]
summary: Get refunds by date range (Confirmed)
parameters:
- name: begin
in: path
required: true
schema:
type: string
- name: end
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TokenOnlyRequest'
responses:
'200':
description: A list of refunds.
content:
application/json:
schema:
type: object
properties:
refunds:
type: array
items:
$ref: '#/components/schemas/Refund'
'401':
$ref: '#/components/responses/Unauthorized'
/reporting/refunds/{id}:
post:
operationId: getRefund
tags: [Refunds]
summary: Get a single refund (Confirmed)
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TokenOnlyRequest'
responses:
'200':
description: The requested refund.
content:
application/json:
schema:
type: object
properties:
refund:
$ref: '#/components/schemas/Refund'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/reporting/registrations/last/{limit}:
post:
operationId: getLastRegistrations
tags: [Registrations]
summary: Get last N peer-to-peer registrations (Confirmed)
parameters:
- name: limit
in: path
required: true
schema:
type: integer
minimum: 1
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TokenOnlyRequest'
responses:
'200':
description: A list of registrations.
content:
application/json:
schema:
type: object
properties:
registrations:
type: array
items:
$ref: '#/components/schemas/Registration'
'401':
$ref: '#/components/responses/Unauthorized'
/reporting/registrations/dates/{begin}:{end}:
post:
operationId: getRegistrationsByDateRange
tags: [Registrations]
summary: Get peer-to-peer registrations by date range (Confirmed)
parameters:
- name: begin
in: path
required: true
schema:
type: string
- name: end
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TokenOnlyRequest'
responses:
'200':
description: A list of registrations.
content:
application/json:
schema:
type: object
properties:
registrations:
type: array
items:
$ref: '#/components/schemas/Registration'
'401':
$ref: '#/components/responses/Unauthorized'
/reporting/registrations/{id}:
post:
operationId: getRegistration
tags: [Registrations]
summary: Get a single peer-to-peer registration (Confirmed)
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TokenOnlyRequest'
responses:
'200':
description: The requested registration.
content:
application/json:
schema:
type: object
properties:
registration:
$ref: '#/components/schemas/Registration'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/events/list:
post:
operationId: listEvents
tags: [Events]
summary: List all events (Confirmed)
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TokenOnlyRequest'
responses:
'200':
description: A list of events.
content:
application/json:
schema:
type: object
properties:
events:
type: array
items:
$ref: '#/components/schemas/Event'
'401':
$ref: '#/components/responses/Unauthorized'
/events/{id}:
get:
operationId: getEvent
tags: [Events]
summary: Retrieve a single event (Confirmed)
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TokenOnlyRequest'
responses:
'200':
description: The requested event.
content:
application/json:
schema:
type: object
properties:
event:
$ref: '#/components/schemas/Event'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
post:
operationId: updateEvent
tags: [Events]
summary: Update an event (Confirmed)
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PackageRequest'
responses:
'200':
description: The updated event.
content:
application/json:
schema:
type: object
properties:
event:
$ref: '#/components/schemas/Event'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/ValidationError'
/account/settings:
get:
operationId: getAccountSettings
tags: [Account Settings]
summary: Get organization and form settings (Confirmed)
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TokenOnlyRequest'
responses:
'200':
description: Organization and per-form settings.
content:
application/json:
schema:
type: object
properties:
settings:
$ref: '#/components/schemas/AccountSettings'
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: updateAccountSettings
tags: [Account Settings]
summary: Update organization and form settings (Confirmed)
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PackageRequest'
responses:
'200':
description: The updated settings.
content:
application/json:
schema:
type: object
properties:
settings:
$ref: '#/components/schemas/AccountSettings'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/ValidationError'
/customFields/list:
post:
operationId: listCustomFields
tags: [Custom Fields]
summary: List all custom fields (Confirmed)
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TokenOnlyRequest'
responses:
'200':
description: A list of custom fields.
content:
application/json:
schema:
type: object
properties:
customField:
type: array
items:
$ref: '#/components/schemas/CustomField'
'401':
$ref: '#/components/responses/Unauthorized'
/customFields/create:
post:
operationId: createCustomField
tags: [Custom Fields]
summary: Create a custom field (Confirmed)
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PackageRequest'
responses:
'200':
description: The created custom field(s).
content:
application/json:
schema:
type: object
properties:
customField:
type: array
items:
$ref: '#/components/schemas/CustomField'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/ValidationError'
/customFields/{id}:
get:
operationId: getCustomField
tags: [Custom Fields]
summary: Retrieve a single custom field (Confirmed)
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TokenOnlyRequest'
responses:
'200':
description: The requested custom field.
content:
application/json:
schema:
type: object
properties:
customField:
$ref: '#/components/schemas/CustomField'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
post:
operationId: updateCustomField
tags: [Custom Fields]
summary: Update a custom field (Confirmed)
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PackageRequest'
responses:
'200':
description: The updated custom field.
content:
application/json:
schema:
type: object
properties:
customField:
$ref: '#/components/schemas/CustomField'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/ValidationError'
/amounts/list:
get:
operationId: listCustomAmounts
tags: [Custom Amounts]
summary: List all custom amounts (Confirmed)
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TokenOnlyRequest'
responses:
'200':
description: A list of custom amounts.
content:
application/json:
schema:
type: object
properties:
amounts:
type: array
items:
$ref: '#/components/schemas/CustomAmount'
'401':
$ref: '#/components/responses/Unauthorized'
/amounts/create:
post:
operationId: createCustomAmount
tags: [Custom Amounts]
summary: Create custom amount(s) (Confirmed)
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PackageRequest'
responses:
'200':
description: The created custom amount(s).
content:
application/json:
schema:
type: object
properties:
amounts:
type: array
items:
$ref: '#/components/schemas/CustomAmount'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/ValidationError'
/amounts/{id}:
get:
operationId: getCustomAmount
tags: [Custom Amounts]
summary: Get a single custom amount (Confirmed)
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TokenOnlyRequest'
responses:
'200':
description: The requested custom amount.
content:
application/json:
schema:
type: object
properties:
amount:
type: array
items:
$ref: '#/components/schemas/CustomAmount'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
post:
operationId: updateCustomAmount
tags: [Custom Amounts]
summary: Update a custom amount (Confirmed)
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PackageRequest'
responses:
'200':
description: The updated custom amount.
content:
application/json:
schema:
type: object
properties:
amount:
$ref: '#/components/schemas/CustomAmount'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/ValidationError'
/reporting/statements/list:
post:
operationId: listStatements
tags: [Statements]
summary: List all statements (Confirmed)
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TokenOnlyRequest'
responses:
'200':
description: A list of statements.
content:
application/json:
schema:
type: object
properties:
statements:
type: array
items:
$ref: '#/components/schemas/Statement'
'401':
$ref: '#/components/responses/Unauthorized'
/reporting/statements/latest:
post:
operationId: getLatestStatements
tags: [Statements]
summary: Get the latest statement(s) (Confirmed)
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TokenOnlyRequest'
responses:
'200':
description: The latest statement(s).
content:
application/json:
schema:
type: object
properties:
statements:
type: array
items:
$ref: '#/components/schemas/Statement'
'401':
$ref: '#/components/responses/Unauthorized'
/reporting/statements/{id}:
post:
operationId: getStatement
tags: [Statements]
summary: Get a single statement (Confirmed)
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TokenOnlyRequest'
responses:
'200':
description: The requested statement.
content:
application/json:
schema:
type: object
properties:
statements:
type: array
items:
$ref: '#/components/schemas/Statement'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/reporting/mappings/list:
get:
operationId: listMappings
tags: [Mappings]
summary: List all report mappings (Confirmed)
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TokenOnlyRequest'
responses:
'200':
description: A list of mappings.
content:
application/json:
schema:
type: object
properties:
mappings:
type: array
items:
$ref: '#/components/schemas/Mapping'
'401':
$ref: '#/components/responses/Unauthorized'
/reporting/mappings/{id}:
get:
operationId: getMapping
tags: [Mappings]
summary: Retrieve a single mapping (Confirmed)
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TokenOnlyRequest'
responses:
'200':
description: The requested mapping.
content:
application/json:
schema:
type: object
properties:
mapping:
$ref: '#/components/schemas/Mapping'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/mappings/create:
post:
operationId: createMapping
tags: [Mappings]
summary: Create a mapping (Confirmed)
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PackageRequest'
responses:
'200':
description: The created mapping(s).
content:
application/json:
schema:
type: object
properties:
mappings:
type: array
items:
$ref: '#/components/schemas/Mapping'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/ValidationError'
/mappings/{id}:
post:
operationId: updateMapping
tags: [Mappings]
summary: Update a mapping (Confirmed)
description: >-
Modeled. The documentation shows the request payload for updating a
mapping by ID but does not show the full response example separately
from the create response; the response is modeled on the list/get
Mapping shape.
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
$re
# --- truncated at 32 KB (39 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/qgiv/refs/heads/main/openapi/qgiv-openapi.yml