Financial Data
This endpoint provides the journal entries of the financial data transfer for the voucher and ticketing system: one entry per online order, order cancellation or refund, and – depending on the settings – per redemption of a Maison or organisation voucher. Each entry balances: the sum of its line_items equals the sum of its payments.
Use it to post the sales of your e-guma shop into your accounting system. The endpoint is enabled per account by e-guma; get in touch with [email protected].
Entries
When an entry is created
| Trigger | Amounts |
|---|---|
| A voucher order is paid online, or its invoice is marked as paid | positive |
| A voucher order is cancelled or refunded, or its paid invoice is marked as unpaid | negative |
| A ticket order is completed | positive |
| Tickets are cancelled | negative |
| A Maison voucher is redeemed (only when the account books Maison vouchers on redemption) | positive |
| The redemption of a Maison voucher is cancelled | negative |
| A voucher of another organisation is redeemed like an own voucher | positive |
| The redemption of an organisation voucher is cancelled | negative |
Orders paid on-site (cash, terminal) do not create entries. Voucher orders paid by invoice create the entry when the invoice is marked as paid in e-guma, not when the order is placed.
Line items
Line items are grouped by product_type and vat_rate, so one entry holds one line item per VAT bucket per product type – regardless of how many vouchers, products or ticket types the order contained.
product_type | Note |
|---|---|
Voucher | Sales of vouchers. Vouchers carry no VAT (vat_rate is null). |
Product | Additional products sold with vouchers. vat_rate is the rate charged to the customer. |
ShippingCosts | Postage for vouchers sent by post. |
Ticket | Tickets, split by VAT rate. 0 means the event is VAT-free. |
CauseWeCare | Donation added to the order. |
Insurance | Ticket insurance added to the order. |
vat_rate is null when e-guma has no VAT information for the item (entries written before VAT tracking, vouchers).
Payments
One payment per payment method used. A voucher order paid with a promo code and a credit card yields two payments (DISCOUNT and e.g. VISA); a ticket order paid with a voucher and TWINT yields EGUMA_VOUCHER and TWINT.
Polling
The response contains every entry of the requested window, oldest first. There is no paging; a window spans at most 31 days.
An entry's created_at is set a moment before the entry is stored, so a window that ends at "now" could miss an entry that is still being written. created_at_before must therefore lie at least 5 minutes in the past; the endpoint rejects anything later. Schedule a daily import at 00:05 or later, not at midnight.
Chain the windows without gaps: the next created_at_after is the previous created_at_before. The window is half-open (created_at_after inclusive, created_at_before exclusive), so adjacent windows neither overlap nor leave a gap. Persist the last created_at_before instead of recomputing "yesterday", so a skipped run does not leave a hole.
Entries never change once written; a correction is always a new entry with negative amounts. id is unique and stable, so a client that repeats a run or overlaps windows can skip entries it has already booked.
Request
GET https://api.e-guma.ch/v1/financial_data/journal_entries?apikey={api-key}&created_at_after={created_at_after}&created_at_before={created_at_before}
Query parameters
| Parameter | Note |
|---|---|
apikey required | An API key can be requested from [email protected]. |
created_at_after required | Date and time in ISO 8601 format, inclusive. Without a time zone offset the value is read in the account's time zone; Z or an explicit offset are honoured. |
created_at_before required | Date and time in ISO 8601 format, exclusive. At least 5 minutes in the past and at most 31 days after created_at_after. |
Response
| Field | Note |
|---|---|
| currency | ISO 4217 code of the account's currency. All amounts are in this currency. |
| entries | All entries of the window, oldest first. See Entry object. |
Entry object
| Field | Note |
|---|---|
| id | Unique and stable entry ID. |
| created_at | Date and time (ISO 8601, account's time zone) when the entry was written. |
| note | Free text for the booking line. Currently the order number for orders and the voucher code for redemptions; it may carry more context in the future, so do not parse it. |
| line_items | See Line item object. |
| payments | See Payment object. |
Line item object
| Field | Note |
|---|---|
| product_type | See Line items. |
| vat_rate | VAT rate in percent (e.g. 8.1), 0 for VAT-free, null when unknown. |
| total | Gross amount including VAT. Negative for cancellations and refunds. |
Payment object
| Field | Note |
|---|---|
| payment_method | See Payment methods. |
| amount | Amount paid with this method. Negative for cancellations and refunds. |
Payment methods
Not every account has all payment methods enabled. MASTERCARD to IDEAL are the online payment methods of the shop.
For voucher orders, a credit card brand is reported individually only when it posts to its own account in e-guma. A brand that posts to the general credit card account is reported as UNKNOWN. Contact us if card payments show up as UNKNOWN.
| Code | Note |
|---|---|
| MASTERCARD | |
| VISA | |
| AMEX | |
| DINERS | |
| DISCOVER | |
| MYONE | |
| POSTCARD | |
| PAYPAL | |
| TWINT | |
| REKA | |
| IDEAL | |
| INVOICE | Purchase on account. For voucher orders the entry is created once the invoice has been paid, for ticket orders when the order is completed. |
| COMPLIMENTARY | Maison voucher. Depending on the settings the entry is created when the voucher is issued or when it is redeemed. |
| DISCOUNT | A discount or promo code. Post it, for example, to a marketing expense account. |
| CREDIT_FOR_PRICE_INCREASE | For vouchers issued at a lower price, the balance is automatically increased by the difference upon redemption. |
| ORGANISATION | Organisation vouchers redeemed like own vouchers. |
| OFFERZ | Voucher orders sold through the Offerz marketplace. |
| EGUMA_VOUCHER | Payment with e-guma vouchers. |
| UNKNOWN | No payment method could be determined. |
Errors
Errors are returned as JSON with an error_code and a message.
| Status | error_code | When |
|---|---|---|
| 400 | validation_error | A parameter is missing or invalid, or the window violates the rules under Polling. The message names the parameter and the rule. |
| 401 | unauthorized | The API key is invalid or the account is not in service anymore. |
| 403 | forbidden | The financial data transfer is not enabled for this account. |
Example
GET https://api.e-guma.ch/v1/financial_data/journal_entries?created_at_after=2026-09-01T00:00:00&created_at_before=2026-09-02T00:00:00&apikey=5f33e993bfede1247c5ff8d8
{
"currency": "CHF",
"entries": [
{
"id": "68b5a1f0e4b0c8a1d2f3a4b5",
"created_at": "2026-09-01T11:22:36",
"note": "G10057",
"line_items": [
{ "product_type": "Voucher", "vat_rate": null, "total": 100.00 },
{ "product_type": "Product", "vat_rate": 8.1, "total": 24.90 },
{ "product_type": "ShippingCosts", "vat_rate": null, "total": 5.00 }
],
"payments": [
{ "payment_method": "VISA", "amount": 119.90 },
{ "payment_method": "DISCOUNT", "amount": 10.00 }
]
},
{
"id": "68b5a3c2e4b0c8a1d2f3a4b9",
"created_at": "2026-09-01T14:05:10",
"note": "1234-5678-9012",
"line_items": [
{ "product_type": "Voucher", "vat_rate": null, "total": 50.00 }
],
"payments": [
{ "payment_method": "COMPLIMENTARY", "amount": 50.00 }
]
},
{
"id": "68b5b0d4e4b0c8a1d2f3a4c1",
"created_at": "2026-09-01T16:40:02",
"note": "1000088",
"line_items": [
{ "product_type": "Ticket", "vat_rate": 8.1, "total": -80.00 }
],
"payments": [
{ "payment_method": "TWINT", "amount": -80.00 }
]
}
]
}Updated about 3 hours ago
