Wat is een webhook?
Een webhook is een automatisch bericht dat vanuit ons systeem naar een andere applicatie wordt gestuurd zodra er iets belangrijks gebeurt, bijvoorbeeld wanneer een factuur wordt aangemaakt of teruggedraaid. Je ontvangt deze meldingen direct, zodat je in realtime kunt reageren.
Hiermee kun je:
Facturen synchroniseren met boekhoudtools
Automatiseringen activeren
Externe systemen in realtime up-to-date houden
Let op: voor webhooks is technische configuratie nodig; het zijn geen plug-and-play functies. Zorg dat je kennis hebt van softwareontwikkeling voordat je deze handleiding volledig doorloopt.
Voordat je begint
Om facturatiewebhooks te gebruiken, heb je een beveiligd HTTPS-eindpunt (URL) nodig dat POST-verzoeken met JSON-gegevens kan ontvangen.
Stapsgewijze handleiding
Zodra je eindpunt klaar is, ga je naar https://backoffice.bsport.io/settings/webhook.
Klik op de knop 'Webhook toevoegen'
Selecteer de gebeurtenis waarop je je wilt abonneren (typen gebeurtenissen vind je hier).
Voer de URL in waar de webhook het bericht naartoe moet sturen.
Klik op bevestigen.
Je nieuwe webhook is nu aangemaakt 🎉.
(Optioneel) Door op de knop 'Test' te klikken, kun je een gebeurtenis simuleren om te controleren of je webhook werkt.
Typen gebeurtenissen
Je kunt je abonneren op verschillende gebeurtenissen die te maken hebben met de levenscyclus van een factuur:
invoice-finalize– wordt geactiveerd wanneer een factuur wordt aangemaakt en geopend (afgerond).invoice-revert– wordt geactiveerd wanneer een factuur wordt teruggedraaid (geannuleerd of terugbetaald)invoice-pay– wordt geactiveerd wanneer een factuur volledig is betaald.invoice-dispute– wordt geactiveerd wanneer een factuur wordt betwist.
De volgende factuurgebeurtenissen zijn verouderd en mogen daarom niet meer worden gebruikt.
invoice-createinvoice-update
Gebeurtenis-payload
Elk van deze gebeurtenissen verzendt dezelfde payload-structuur, zoals hieronder gedefinieerd.
Je vindt hier ook de JSON Schema-beschrijving van de payload.
Beschrijving van de velden
Veld | Type | Beschrijving | Voorbeeld |
| string |
| |
| number (timestamp) | Tijdstempel van wanneer de gebeurtenis werd geactiveerd |
|
| Object | Details over de gebeurtenis en factuur (zie hieronder). | - |
|
|
| "2025-11-04T09:03:11.653072Z" |
| string (uuid) | Unieke identificatie van de factuur | "923e2c97-8228-4d42-8a44-1783c70c50a1" |
| string | Objecttype (altijd |
|
| string | Factuurstatus ( |
|
| string (date-time) | Wanneer de factuur is aangemaakt (UTC). |
|
| string (date-time) | Wanneer de factuur is aangemaakt (UTC). |
|
| string (date-time) | Wanneer de factuur is uitgegeven (UTC). |
|
| string (date-time) | Vervaldatum van betaling (UTC). |
|
| string (date-time) | null | Wanneer de factuur is geannuleerd (indien van toepassing). |
|
| string | Valuta van de factuur (ISO 4217-code). |
|
| number (cents) | Totaalbedrag van de factuur in de kleinste eenheid (bijv. centen). |
|
| number (cents) | Verschuldigd bedrag in de kleinste eenheid (bijv. centen). |
|
| number (cents) | Reeds betaald bedrag in de kleinste eenheid (bijv. centen). |
|
| object | Bedrijf dat de factuur uitgeeft. |
|
| number | Unieke bedrijfs-ID. Ga naar deze backoffice-pagina om je bedrijfs-ID te vinden. |
|
| string | Bedrijfsnaam. |
|
| string | Landcode. |
|
| string | Plaats. |
|
| string | Adres. |
|
| string | Postcode. |
|
| object | null | Klant aan wie wordt gefactureerd (kan |
|
| number | Unieke klant-/lid-ID. |
|
| string | Klanttype (hier altijd |
|
| string | Volledige naam. |
|
| string | Voornaam. |
|
| string | Achternaam. |
|
| string | Email van de contactpersoon. |
|
| string | Telefoonnummer. |
|
| string | Officieel/nationaal identificatienummer (kan fiscaal nummer/NIF zijn). |
|
| object | Adres van de klant. |
|
| string | Straatadres. |
|
| string (optional) | Aanvullende adresgegevens. |
|
| string | Plaats. |
|
| string | Postcode. |
|
| string | Staat/regio. |
|
| string | Landcode. |
|
| object | Container voor factuurregels. |
|
| number | Aantal factuurregels. |
|
| array<object> | Array van factuurregels. |
|
| number | Unieke identificatie van de factuurregel. |
|
| string | Naam/label van het product of de dienst. |
|
| number | Aantal gekochte eenheden. |
|
| number (cents) | Eenheidsprijs incl. btw, in centen. |
|
| number (cents) | Totaalprijs incl. btw vóór korting ( |
|
| number (cents) | Korting/voucher toegepast op deze regel, in centen. |
|
| number (cents) | Definitief regelbedrag na korting, in centen. |
|
| object | Details van de btw-berekening. |
|
| number (%) | Btw-tarief in procenten (bijv. 20 = 20%). |
|
| number (cents) | Totale btw inbegrepen in deze regel, in centen. |
|
| number (cents) | Btw per eenheid, in centen. |
|
| string | Type bsport-item ( |
|
| string (url) | Link naar de factuur-PDF. |
|
| string (url) | null | Link naar de PDF van het betaalbewijs (indien van toepassing). |
|
| number | Factuurtype: 0=normaal, 1=omgekeerd, 2=creditnota, 3=migratie. |
|
| string (uuid) | null | UUID van de oorspronkelijke factuur die via deze factuur is geannuleerd (indien van toepassing). |
|
Voorbeeld
{
"event_type": "invoice-finalize",
"date": 1762246989,
"data": {
"date": "2025-11-04T09:03:11.653072Z",
"object": {
"id": "923e2c97-8228-4d42-8a44-1783c70c50a1",
"object": "invoice",
"status": "open",
"date_created": "2025-11-04T09:03:06.515219Z",
"date_issued": "2025-11-04T09:03:08.225042Z",
"date_due": "2025-11-04T09:03:07.292000Z",
"date_cancelled": null,
"currency": "eur",
"total": 36665,
"amount_due": 36665,
"amount_paid": 0,
"company": {
"id": 85329,
"name": "SaudeViva Portugal",
"country": "PT",
"city": "Lisbon",
"address": "Rua do Ouro 115",
"postal_code": "1100-062"
},
"customer": {
"id": 7644312,
"type": "individual",
"name": "Maria Oliveira",
"first_name": "Maria",
"last_name": "Oliveira",
"email": "maria.oliveira77@example.com",
"phone": "+351 912 345 678",
"official_document_id": "PT-19847765",
"address": {
"line1": "Avenida da Liberdade 202",
"line2": "4º Esq.",
"city": "Lisbon",
"postal_code": "1250-147",
"state": "Lisboa",
"country": "PT"
}
},
"line_items": {
"line_count": 6,
"data": [
{
"id": 2153,
"description": "£100 General Gift Voucher",
"quantity": 1,
"tax_included_unit_amount": 10000,
"tax_included_amount": 10000,
"voucher_applied": 0,
"line_total": 10000,
"tax_breakdown": {
"rate": 0,
"total_tax": 0,
"unit_tax": 0
},
"item_type": "consumer_giftcard"
},
{
"id": 249955,
"description": "Classic Jumper - Peacoat Navy",
"quantity": 2,
"tax_included_unit_amount": 4500,
"tax_included_amount": 9000,
"voucher_applied": 964,
"line_total": 8036,
"tax_breakdown": {
"rate": 20,
"total_tax": 1339,
"unit_tax": 670
},
"item_type": "shop-product"
},
{
"id": 15305,
"description": "Single 60 Minute Reiki Treatment",
"quantity": 1,
"tax_included_unit_amount": 7500,
"tax_included_amount": 7500,
"voucher_applied": 1384,
"line_total": 6116,
"tax_breakdown": {
"rate": 20,
"total_tax": 1019,
"unit_tax": 1019
},
"item_type": "private_pass"
},
{
"id": 15301,
"description": "Single 60 Minute Session",
"quantity": 1,
"tax_included_unit_amount": 7500,
"tax_included_amount": 7500,
"voucher_applied": 1383,
"line_total": 6117,
"tax_breakdown": {
"rate": 20,
"total_tax": 1019,
"unit_tax": 1019
},
"item_type": "private_pass"
},
{
"id": 427448,
"description": "Newbies",
"quantity": 1,
"tax_included_unit_amount": 4900,
"tax_included_amount": 4900,
"voucher_applied": 904,
"line_total": 3996,
"tax_breakdown": {
"rate": 20,
"total_tax": 666,
"unit_tax": 666
},
"item_type": "pass"
},
{
"id": 427451,
"description": "1 Session",
"quantity": 1,
"tax_included_unit_amount": 2500,
"tax_included_amount": 2500,
"voucher_applied": 100,
"line_total": 2400,
"tax_breakdown": {
"rate": 20,
"total_tax": 400,
"unit_tax": 400
},
"item_type": "pass"
}
]
},
"invoice_pdf": "https://assets.staging.bsport.io/invoices/2025-11-04/5cab7c93-cd01-4d15-9362-46b0a89919b5/invoice-24092226.pdf",
"receipt_pdf": null,
"invoice_type": 0,
"source_invoice_id": null
}
}
}




