Dokumentacja API
Finance
Invoices, credit notes and the budget summary.
List invoices
GET/events/{eventId}/invoices
Lists an event's invoices and credit notes in their series' order. The buyer as printed needs people:read.
- Uprawnienia
- finance:read
- Moduł
paymentsOdrzucane z kodem moduleOff, gdy organizator wydarzenia wyłączył ten moduł.
Parametry
ścieżka
eventIdstring (uuid)wymaganeThe event's id.
zapytanie
cursorstringWhere the page starts: nextCursor from the page before, exactly as it was returned. Leave out for the first page.
limitinteger (int32)How many on a page, up to 500.
Domyślnie:
100updatedSincestring (date-time)Only what changed at or after this moment, in UTC unless it says otherwise. Pass the newest updatedUtc your last sync saw.
kindstringOnly invoices or only credit notes.
Jedno z:
invoice,creditNote
Odpowiedzi
- 200 A page of invoices. InvoiceList
Pola
dataInvoice[]The items of this page.
Pokaż pola
invoiceIdstring (uuid)The document's id.
eventIdstring (uuid)The event's id.
orderIdstring (uuid)The order it is for.
kindstringInvoice or creditNote.
Jedno z:
invoice,creditNotenumberstringIts number in the event's series.
correctsIdstring (uuid) lub nullA credit note: the invoice it corrects.
issuedUtcstring (date-time)When it was issued, in UTC.
totalnumberThe total, VAT included. With the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
vatnumberThe VAT in it. With the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
currencystringISO 4217.
vatCurrencystring lub nullThe currency the VAT is also stated in, when the law asks for it.
vatConvertednumber lub nullThe VAT in that currency.
buyerobject lub nullThe buyer as printed on it. Null without people:read.
Pokaż pola
namestringName.
emailstringAddress.
companystring lub nullCompany.
addressstring lub nullPostal address.
vatNumberstring lub nullVAT number.
referencestring lub nullTheir reference.
sellerobject lub nullThe seller as printed on it: the organiser.
linesobject[] lub nullIts lines: on one document only.
Pokaż pola
ticketTypeIdstring (uuid)The ticket type.
addOnIdstring (uuid) lub nullThe add-on, for an add-on line.
namestringWhat it is.
quantityinteger (int32)How many.
unitPricenumberEach, VAT included. With the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
vatRatenumberThe VAT rate.
totalnumberThe line. With the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
vatnumberIts VAT. With the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
personalDatastringWhether the personal fields are here: included, withheld (the key lacks people:read) or erased (the person deleted their data).
Jedno z:
included,withheld,erased
nextCursorstring lub nullThe cursor for the next page; null on the last page. Pass it as cursor, with the same filters.
hasMorebooleanWhether there is another page.
- 400 invalidCursor, invalidUpdatedSince, invalidRequest.
- 401 invalidKey, keyExpired, keyRevoked.
- 403 missingScope.
- 404 eventNotFound.
- 409 moduleOff.
- 429 rateLimited.
Odmowy
invalidKey keyExpired keyRevoked rateLimited missingScope moduleOff eventNotFound invalidCursor invalidUpdatedSince invalidRequest
Żądanie
curl "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/invoices?limit=2" \
-H "Authorization: Bearer $ATTENDBEACON_KEY"const response = await fetch("https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/invoices?limit=2", {
headers: {
Authorization: `Bearer ${process.env.ATTENDBEACON_KEY}`
}
});
if (!response.ok) throw new Error((await response.json()).detail);
const data = await response.json();using System.Net.Http.Headers;
using System.Text;
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("ATTENDBEACON_KEY"));
using var request = new HttpRequestMessage(HttpMethod.Get, "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/invoices?limit=2");
using var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
var json = await response.Content.ReadAsStringAsync();import os
import requests
response = requests.get(
"https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/invoices", params={"limit": 2},
headers={
"Authorization": f"Bearer {os.environ['ATTENDBEACON_KEY']}"
}
)
response.raise_for_status()
data = response.json()$headers = @{
Authorization = "Bearer $env:ATTENDBEACON_KEY"
}
$data = Invoke-RestMethod -Method Get -Uri "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/invoices?limit=2" -Headers $headers200 Przykładowa odpowiedź
{
"data": [
{
"invoiceId": "b3ac0019-0000-4000-8000-000000000001",
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"orderId": "b3ac0007-0000-4000-8000-00000000002d",
"kind": "invoice",
"number": "BS26-0001",
"correctsId": null,
"issuedUtc": "2026-08-29T21:45:47.963Z",
"total": 395,
"vat": 68.55,
"currency": "EUR",
"vatCurrency": null,
"vatConverted": null,
"buyer": {
"name": "Jesse Meijer",
"email": "jesse.meijer45@example.com",
"company": "Proseware",
"address": null,
"vatNumber": null,
"reference": null
},
"seller": {
"enabled": true,
"sellerName": "Beacon Events B.V.",
"sellerAddress": "Voorbeeldstraat 12\n1011 AB Amsterdam\nThe Netherlands",
"sellerVatNumber": "NL000000000B01",
"sellerRegistration": "KvK 00000000",
"prefix": "BS26-",
"footer": "Questions about this invoice? billing@beaconsummit.example"
},
"lines": null,
"personalData": "included"
},
{
"invoiceId": "b3ac0019-0000-4000-8000-000000000002",
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"orderId": "b3ac0007-0000-4000-8000-00000000002a",
"kind": "invoice",
"number": "BS26-0002",
"correctsId": null,
"issuedUtc": "2026-09-01T21:45:47.963Z",
"total": 316,
"vat": 54.84,
"currency": "EUR",
"vatCurrency": null,
"vatConverted": null,
"buyer": {
"name": "Lotte de Vries",
"email": "lotte.devries42@example.com",
"company": "Northwind Cloud",
"address": null,
"vatNumber": null,
"reference": null
},
"seller": {
"enabled": true,
"sellerName": "Beacon Events B.V.",
"sellerAddress": "Voorbeeldstraat 12\n1011 AB Amsterdam\nThe Netherlands",
"sellerVatNumber": "NL000000000B01",
"sellerRegistration": "KvK 00000000",
"prefix": "BS26-",
"footer": "Questions about this invoice? billing@beaconsummit.example"
},
"lines": null,
"personalData": "included"
}
],
"nextCursor": "YzE6MDAwMDAwMTAwMDAwMDAwMDAwMnxiM2FjMDAxOTAwMDA0MDAwODAwMDAwMDAwMDAwMDAwMg",
"hasMore": true
}400 invalidCursor, invalidUpdatedSince, invalidRequest.
{
"type": "https://attendbeacon.com/developers/errors#invalidCursor",
"title": "The cursor is not valid",
"status": 400,
"detail": "Pass nextCursor exactly as a list returned it, with the same filters.",
"instance": "/api/v1/events/b3ac0000-0000-4000-8000-000000000001/invoices",
"code": "invalidCursor",
"traceId": "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01",
"error": "Pass nextCursor exactly as a list returned it, with the same filters."
}Get an invoice
GET/events/{eventId}/invoices/{invoiceId}
Gets one invoice or credit note with its lines.
- Uprawnienia
- finance:read
- Moduł
paymentsOdrzucane z kodem moduleOff, gdy organizator wydarzenia wyłączył ten moduł.
- Odpowiada z nagłówkiem ETag; wyślij If-None-Match, aby nie pobierać danych ponownie.
Parametry
ścieżka
eventIdstring (uuid)wymaganeThe event's id.
invoiceIdstring (uuid)wymaganeThe invoice's or credit note's id.
nagłówek
If-None-MatchstringThe ETag you have: when it is still current the answer is 304 with no body.
Odpowiedzi
- 200 The document. Invoice
Pola
invoiceIdstring (uuid)The document's id.
eventIdstring (uuid)The event's id.
orderIdstring (uuid)The order it is for.
kindstringInvoice or creditNote.
Jedno z:
invoice,creditNotenumberstringIts number in the event's series.
correctsIdstring (uuid) lub nullA credit note: the invoice it corrects.
issuedUtcstring (date-time)When it was issued, in UTC.
totalnumberThe total, VAT included. With the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
vatnumberThe VAT in it. With the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
currencystringISO 4217.
vatCurrencystring lub nullThe currency the VAT is also stated in, when the law asks for it.
vatConvertednumber lub nullThe VAT in that currency.
buyerobject lub nullThe buyer as printed on it. Null without people:read.
Pokaż pola
namestringName.
emailstringAddress.
companystring lub nullCompany.
addressstring lub nullPostal address.
vatNumberstring lub nullVAT number.
referencestring lub nullTheir reference.
sellerobject lub nullThe seller as printed on it: the organiser.
linesobject[] lub nullIts lines: on one document only.
Pokaż pola
ticketTypeIdstring (uuid)The ticket type.
addOnIdstring (uuid) lub nullThe add-on, for an add-on line.
namestringWhat it is.
quantityinteger (int32)How many.
unitPricenumberEach, VAT included. With the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
vatRatenumberThe VAT rate.
totalnumberThe line. With the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
vatnumberIts VAT. With the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
personalDatastringWhether the personal fields are here: included, withheld (the key lacks people:read) or erased (the person deleted their data).
Jedno z:
included,withheld,erased
- 304 Not modified: If-None-Match named the representation as it is.
- 401 invalidKey, keyExpired, keyRevoked.
- 403 missingScope.
- 404 eventNotFound, notFound.
- 409 moduleOff.
- 429 rateLimited.
Odmowy
invalidKey keyExpired keyRevoked rateLimited missingScope moduleOff eventNotFound notFound
Żądanie
curl "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/invoices/b3ac0019-0000-4000-8000-000000000001" \
-H "Authorization: Bearer $ATTENDBEACON_KEY"const response = await fetch("https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/invoices/b3ac0019-0000-4000-8000-000000000001", {
headers: {
Authorization: `Bearer ${process.env.ATTENDBEACON_KEY}`
}
});
if (!response.ok) throw new Error((await response.json()).detail);
const data = await response.json();using System.Net.Http.Headers;
using System.Text;
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("ATTENDBEACON_KEY"));
using var request = new HttpRequestMessage(HttpMethod.Get, "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/invoices/b3ac0019-0000-4000-8000-000000000001");
using var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
var json = await response.Content.ReadAsStringAsync();import os
import requests
response = requests.get(
"https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/invoices/b3ac0019-0000-4000-8000-000000000001",
headers={
"Authorization": f"Bearer {os.environ['ATTENDBEACON_KEY']}"
}
)
response.raise_for_status()
data = response.json()$headers = @{
Authorization = "Bearer $env:ATTENDBEACON_KEY"
}
$data = Invoke-RestMethod -Method Get -Uri "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/invoices/b3ac0019-0000-4000-8000-000000000001" -Headers $headers200 Przykładowa odpowiedź
{
"invoiceId": "b3ac0019-0000-4000-8000-000000000001",
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"orderId": "b3ac0007-0000-4000-8000-00000000002d",
"kind": "invoice",
"number": "BS26-0001",
"correctsId": null,
"issuedUtc": "2026-08-29T21:45:47.963Z",
"total": 395,
"vat": 68.55,
"currency": "EUR",
"vatCurrency": null,
"vatConverted": null,
"buyer": {
"name": "Jesse Meijer",
"email": "jesse.meijer45@example.com",
"company": "Proseware",
"address": null,
"vatNumber": null,
"reference": null
},
"seller": {
"enabled": true,
"sellerName": "Beacon Events B.V.",
"sellerAddress": "Voorbeeldstraat 12\n1011 AB Amsterdam\nThe Netherlands",
"sellerVatNumber": "NL000000000B01",
"sellerRegistration": "KvK 00000000",
"prefix": "BS26-",
"footer": "Questions about this invoice? billing@beaconsummit.example"
},
"lines": [
{
"ticketTypeId": "b3ac0006-0000-4000-8000-000000000001",
"addOnId": null,
"name": "Conference pass",
"quantity": 1,
"unitPrice": 395,
"vatRate": 21,
"total": 395,
"vat": 68.55
}
],
"personalData": "included"
}401 invalidKey, keyExpired, keyRevoked.
{
"type": "https://attendbeacon.com/developers/errors#invalidKey",
"title": "No working API key",
"status": 401,
"detail": "No key was sent, or it is not one this platform made. Send it as Authorization: Bearer abk_... or in X-Api-Key.",
"instance": "/api/v1/events/b3ac0000-0000-4000-8000-000000000001/invoices/{invoiceId}",
"code": "invalidKey",
"traceId": "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01",
"error": "No key was sent, or it is not one this platform made. Send it as Authorization: Bearer abk_... or in X-Api-Key."
}Get the budget summary
GET/events/{eventId}/budget
Gets the event budget's summary, net of VAT: income, costs and result as budgeted, committed, actual and forecast, per category, with the break-even point.
- Uprawnienia
- finance:read
- Moduł
budgetOdrzucane z kodem moduleOff, gdy organizator wydarzenia wyłączył ten moduł.
Parametry
ścieżka
eventIdstring (uuid)wymaganeThe event's id.
Odpowiedzi
- 200 The summary. BudgetSummary
Pola
eventIdstring (uuid)The event's id.
currencystringISO 4217.
basisstringAlways net: excluding VAT.
attendeesinteger (int32)The attendees the forecast is for.
incomeBudgetAmountsAmounts net of VAT.
Pokaż pola
budgetnumberBudgeted. With the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
committednumberCommitted: quotes accepted and invoices received. With the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
actualnumberInvoiced, paid, and what AttendBeacon's own data says. With the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
forecastnumberWhat it will come to. With the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
paidnumberWhat moved through the bank. With the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
costsBudgetAmountsAmounts net of VAT.
Pokaż pola
budgetnumberBudgeted. With the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
committednumberCommitted: quotes accepted and invoices received. With the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
actualnumberInvoiced, paid, and what AttendBeacon's own data says. With the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
forecastnumberWhat it will come to. With the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
paidnumberWhat moved through the bank. With the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
resultBudgetAmountsAmounts net of VAT.
Pokaż pola
budgetnumberBudgeted. With the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
committednumberCommitted: quotes accepted and invoices received. With the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
actualnumberInvoiced, paid, and what AttendBeacon's own data says. With the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
forecastnumberWhat it will come to. With the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
paidnumberWhat moved through the bank. With the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
costPerAttendeenumber lub nullForecast costs per forecast attendee. With the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
breakEvenobjectThe break-even point.
Pokaż pola
ticketsinteger (int32) lub nullPaid tickets needed at the average price.
paidTicketsinteger (int32)Paid tickets sold.
averagePaidTicketnumberThe average paid ticket, net of VAT. With the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
categoriesobject[]Each category.
Pokaż pola
categoryIdstring (uuid)The category's id.
kindstringIncome or cost.
keystring lub nullA default category's key: tickets, venue, catering and others.
namestring lub nullIts name.
budgetnumberBudgeted. With the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
committednumberCommitted. With the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
actualnumberActual. With the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
forecastnumberForecast. With the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
paidnumberPaid. With the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
warningsstring[]What the planner noticed, as codes.
- 401 invalidKey, keyExpired, keyRevoked.
- 403 missingScope.
- 404 eventNotFound.
- 409 moduleOff.
- 429 rateLimited.
Odmowy
invalidKey keyExpired keyRevoked rateLimited missingScope moduleOff eventNotFound
Żądanie
curl "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/budget" \
-H "Authorization: Bearer $ATTENDBEACON_KEY"const response = await fetch("https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/budget", {
headers: {
Authorization: `Bearer ${process.env.ATTENDBEACON_KEY}`
}
});
if (!response.ok) throw new Error((await response.json()).detail);
const data = await response.json();using System.Net.Http.Headers;
using System.Text;
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("ATTENDBEACON_KEY"));
using var request = new HttpRequestMessage(HttpMethod.Get, "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/budget");
using var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
var json = await response.Content.ReadAsStringAsync();import os
import requests
response = requests.get(
"https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/budget",
headers={
"Authorization": f"Bearer {os.environ['ATTENDBEACON_KEY']}"
}
)
response.raise_for_status()
data = response.json()$headers = @{
Authorization = "Bearer $env:ATTENDBEACON_KEY"
}
$data = Invoke-RestMethod -Method Get -Uri "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/budget" -Headers $headers200 Przykładowa odpowiedź
{
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"currency": "EUR",
"basis": "net",
"attendees": 450,
"income": {
"budget": 125900,
"committed": 69346.37,
"actual": 62546.37,
"forecast": 140835.02,
"paid": 12664.14
},
"costs": {
"budget": 130850,
"committed": 84797.5,
"actual": 20347.5,
"forecast": 134741.15,
"paid": 17277.79
},
"result": {
"budget": -4950,
"committed": -15451.13,
"actual": 42198.87,
"forecast": 6093.87,
"paid": -4613.65
},
"costPerAttendee": 299.42,
"breakEven": {
"tickets": 241,
"paidTickets": 46,
"averagePaidTicket": 284.07
},
"categories": [
{
"categoryId": "b3ac6801-0000-4000-8000-000000000000",
"kind": "income",
"key": "tickets",
"name": "Tickets",
"budget": 62000,
"committed": 13067.2,
"actual": 13067.2,
"forecast": 74433.42,
"paid": 11434.97
},
{
"categoryId": "b3ac6801-0000-4000-8000-000000000001",
"kind": "income",
"key": "addons",
"name": "Add-ons",
"budget": 4500,
"committed": 1229.17,
"actual": 1229.17,
"forecast": 7001.6,
"paid": 1229.17
}
],
"warnings": []
}401 invalidKey, keyExpired, keyRevoked.
{
"type": "https://attendbeacon.com/developers/errors#invalidKey",
"title": "No working API key",
"status": 401,
"detail": "No key was sent, or it is not one this platform made. Send it as Authorization: Bearer abk_... or in X-Api-Key.",
"instance": "/api/v1/events/b3ac0000-0000-4000-8000-000000000001/budget",
"code": "invalidKey",
"traceId": "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01",
"error": "No key was sent, or it is not one this platform made. Send it as Authorization: Bearer abk_... or in X-Api-Key."
}Przewodniki i ta witryna są w twoim języku. Opisy w samej dokumentacji API są po angielsku, tak jak mówi samo API.