Create a transaction_bundle
Create a new transaction bundle. A bundle represents a single payment event and groups the financial transaction(s) with the products purchased (memberships, donations, or both).
One API key = one space The bundle is recorded in the space associated with the API key you use. The contact can belong to a different space — their profile will still show the transaction. This is the correct way to handle contacts who move between spaces or for national/world-level transactions: use the API key of the space where the transaction should appear financially.
Payer vs. Beneficiary
contact_idintransactions→ the payer (who made the payment)contact_idinmemberships→ the beneficiary (who gets the membership)contact_idindonations→ the beneficiary (who gets the donation credit) These can be different people. When they differ, the transaction will have the “Tiers Payant” status in most group configurations.
Getting valid IDs before creating
- Payment methods:
GET /v1/transaction_settings→payment_method_kinds - Transaction statuses:
GET /v1/transaction_statuses(usedefault_status_idfrom settings for new valid transactions) - Membership prices:
GET /v1/membership_prices - Donation prices:
GET /v1/donation_prices - Campaign codes:
GET /v1/code_campaigns
external_transaction_id
Must be a plain integer. Used as your external reference and for deduplication. String suffixes (e.g. "1001_a") are not supported.
Dates
All dates must be valid ISO 8601 timestamps. The date you provide is stored as-is (UTC). Avoid invalid calendar dates (e.g. 2025-02-31).
Required for creation:
- At least one transaction in
transactionswith:amount,currency,payment_method_kind,contact_id,date
Example — membership:
{
"data": {
"transactions": [
{
"contact_id": 123456,
"amount": 2000,
"currency": "eur",
"payment_method_kind": "CB",
"date": "2026-03-29T12:59:52+02:00",
"external_transaction_id": 1001,
"status_id": 1,
"comment": "Imported via API"
}
],
"memberships": [
{
"contact_id": 123456,
"membership_price_id": 10,
"start_date": "2026-01-01T00:00:00+02:00",
"end_date": "2026-12-31T00:00:00+02:00",
"amount": 2000,
"amount_initial": 2000,
"currency": "eur"
}
]
}
}
status_id: 1is illustrative — use thedefault_status_idfromGET /v1/transaction_settingsfor your group.membership_price_id: 10is illustrative — use IDs fromGET /v1/membership_prices.
Example — donation:
{
"data": {
"transactions": [
{
"contact_id": 123456,
"amount": 5000,
"currency": "eur",
"payment_method_kind": "CB",
"date": "2026-03-27T18:00:28+02:00",
"external_transaction_id": 1002,
"status_id": 1,
"comment": "Imported via API"
}
],
"donations": [
{
"contact_id": 123456,
"amount": 5000,
"currency": "eur",
"donation_price_id": 20
}
]
}
}
donation_price_id: 20is illustrative — use IDs fromGET /v1/donation_prices.
Example — different payer and beneficiary (Tiers Payant):
{
"data": {
"transactions": [
{
"contact_id": 123456,
"amount": 2000,
"currency": "eur",
"payment_method_kind": "CB",
"date": "2026-03-29T10:00:00Z",
"external_transaction_id": 1003,
"status_id": 1
}
],
"memberships": [
{
"contact_id": 789012,
"membership_price_id": 10,
"start_date": "2026-01-01T00:00:00Z",
"end_date": "2026-12-31T00:00:00Z",
"amount": 2000,
"amount_initial": 2000,
"currency": "eur"
}
]
}
}
Here contact 123456 paid, but the membership is attributed to contact 789012.
Documentation Index
Fetch the complete documentation index at: https://developer.qomon.com/llms.txt
Use this file to discover all available pages before exploring further.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Transaction bundle data. The bundle must contain at least one transaction.
Example:
{
"data": {
"transactions": [
{
"amount": 5000,
"currency": "eur",
"payment_method_kind": "card",
"contact_id": 123,
"date": "2024-01-15T10:00:00Z",
"status_id": 1
}
],
"memberships": [
{
"contact_id": 123,
"start_date": "2024-01-15T00:00:00Z",
"end_date": "2024-12-31T23:59:59Z",
"membership_price_id": 5,
"amount": 3000,
"amount_initial": 3000,
"currency": "eur"
}
],
"donations": [
{
"contact_id": 123,
"amount": 2000,
"initial_amount": 2000,
"currency": "eur",
"donation_price_id": 2
}
]
}
}A transaction bundle groups together related financial operations (transactions, memberships, donations) that are part of a single payment event.
Structure:
transactions: Array of payment transactions (required - at least one)memberships: Array of membership subscriptions (optional)donations: Array of donation contributions (optional)summary: Automatically calculated counts (read-only, returned in responses only)
When Creating:
- Omit
idfield (auto-generated) - Omit
summary(auto-calculated, returned in responses) - Include at least one transaction with required fields
When Updating:
- Include
idfield matching the bundle ID in the URL - Include
idfor existing items you want to modify - Omit
idfor new items you want to add - Note: Updates are additive - items not included in the request remain in the bundle unchanged (they are not removed)
Response
Successful operation
"success"
A transaction bundle groups together related financial operations (transactions, memberships, donations) that are part of a single payment event.
Structure:
transactions: Array of payment transactions (required - at least one)memberships: Array of membership subscriptions (optional)donations: Array of donation contributions (optional)summary: Automatically calculated counts (read-only, returned in responses only)
When Creating:
- Omit
idfield (auto-generated) - Omit
summary(auto-calculated, returned in responses) - Include at least one transaction with required fields
When Updating:
- Include
idfield matching the bundle ID in the URL - Include
idfor existing items you want to modify - Omit
idfor new items you want to add - Note: Updates are additive - items not included in the request remain in the bundle unchanged (they are not removed)