# Deep SnelStart Booking Structure Analysis: Lulu Transactions
## Executive Summary
Analysis of two Lulu Press transactions in SnelStart to understand the complete booking chain:
- **LINKED** transaction (properly connected to inkoopboeking)
- **UNLINKED** transaction (direct grootboek booking)
**Key Finding:** The critical difference is in the `inkoopboekingBoekingsRegels` array in the BANKBOEKING object.
---
## Transaction Selection
### LINKED Transaction
- **ID:** `b6999668-ce57-43df-94ec-0150603c35df`
- **Date:** 2025-03-27
- **Amount:** €20.00
- **Description:** "Lulu Press, Inc. 844-2120689 US"
### UNLINKED Transaction
- **ID:** `ee9752db-b060-45f3-8252-1991fe2a5d28`
- **Date:** 2025-01-21
- **Amount:** €20.14
- **Description:** "Lulu Press, Inc. 844-2120689 US"
---
## LEVEL 1: BANKBOEKING Structure
### LINKED Transaction Bankboeking
```json
{
"id": "b6999668-ce57-43df-94ec-0150603c35df",
"datum": "2025-03-27T00:00:00",
"omschrijving": "Lulu Press, Inc. 844-2120689 US",
"bedragUitgegeven": 20,
"bedragOntvangen": 0,
"dagboek": {
"id": "f3b0be5f-d201-4b0a-ac69-c95dfdb7fced", // 1190 ICS Creditcard
"uri": "/dagboeken/f3b0be5f-d201-4b0a-ac69-c95dfdb7fced"
},
"grootboekBoekingsRegels": [], // ← EMPTY!
"inkoopboekingBoekingsRegels": [ // ← THE LINK IS HERE!
{
"boekingId": {
"id": "6b78e7b0-bdef-446f-857a-b25f7efdca02", // ← INKOOPBOEKING ID
"uri": "/inkoopboekingen/6b78e7b0-bdef-446f-857a-b25f7efdca02"
},
"omschrijving": "lulu press",
"debet": 20,
"credit": 0
}
],
"verkoopboekingBoekingsRegels": [],
"btwBoekingsregels": []
}
```
**Key observations:**
- `grootboekBoekingsRegels` is EMPTY - no direct grootboek booking
- `inkoopboekingBoekingsRegels` contains the link to the inkoopboeking
- The amount (€20) flows through the inkoopboeking
### UNLINKED Transaction Bankboeking
```json
{
"id": "ee9752db-b060-45f3-8252-1991fe2a5d28",
"datum": "2025-01-21T00:00:00",
"omschrijving": "Lulu Press, Inc. 844-2120689 US",
"bedragUitgegeven": 20.14,
"bedragOntvangen": 0,
"dagboek": {
"id": "f3b0be5f-d201-4b0a-ac69-c95dfdb7fced", // 1190 ICS Creditcard
"uri": "/dagboeken/f3b0be5f-d201-4b0a-ac69-c95dfdb7fced"
},
"grootboekBoekingsRegels": [ // ← DIRECT BOOKING TO GROOTBOEK!
{
"omschrijving": "Lulu Press, Inc. 844-2120689 US",
"grootboek": {
"id": "8aaecf2d-d61f-4814-b8cc-f97da5f2a3e9", // 4610 Kosten automatisering
"uri": "/grootboeken/8aaecf2d-d61f-4814-b8cc-f97da5f2a3e9"
},
"kostenplaats": null,
"debet": 20.14,
"credit": 0,
"btwSoort": null
}
],
"inkoopboekingBoekingsRegels": [], // ← EMPTY - NO LINK!
"verkoopboekingBoekingsRegels": [],
"btwBoekingsregels": []
}
```
**Key observations:**
- `grootboekBoekingsRegels` has a direct booking to grootboek 4610 (Kosten automatisering)
- `inkoopboekingBoekingsRegels` is EMPTY - no link to inkoopboeking
- The amount goes directly to the grootboek WITHOUT supplier/invoice metadata
---
## LEVEL 2: INKOOPBOEKING (LINKED Transaction Only)
```json
{
"id": "6b78e7b0-bdef-446f-857a-b25f7efdca02",
"factuurdatum": "2025-03-27T00:00:00",
"factuurnummer": "LULU-2159981",
"leverancier": {
"id": "8dd629b2-5b5e-47d2-ad02-0b37cd7b919e", // Lulu Press
"uri": "/relaties/8dd629b2-5b5e-47d2-ad02-0b37cd7b919e"
},
"factuurbedrag": 20,
"boekingsregels": [
{
"omschrijving": "Print job 5374",
"grootboek": {
"id": "7149081b-96b0-4a92-88cd-63d4cc6462f2", // 4100 Opleidingen & cursussen
"uri": "/grootboeken/7149081b-96b0-4a92-88cd-63d4cc6462f2"
},
"kostenplaats": null,
"bedrag": 18.34,
"btwSoort": "Hoog"
}
],
"btw": [
{
"btwSoort": "InkopenHoog",
"btwBedrag": 1.66
}
],
"documents": [
{
"parentIdentifier": "6b78e7b0-bdef-446f-857a-b25f7efdca02",
"fileName": "lulu-job-2159981.pdf",
"readOnly": false,
"id": "246eb427-7a41-49b6-b695-00377506b1df",
"uri": "/documenten/246eb427-7a41-49b6-b695-00377506b1df"
}
]
}
```
**What the inkoopboeking provides:**
- ✅ **Leverancier** (supplier): Lulu Press
- ✅ **Factuurnummer**: LULU-2159981
- ✅ **BTW calculation**: €18.34 + €1.66 BTW = €20.00
- ✅ **Document**: PDF invoice attached
- ✅ **Grootboek**: 4100 (Opleidingen & cursussen) - the REAL expense account
- ✅ **Description**: "Print job 5374" - detailed description
**UNLINKED transaction LACKS all of this:**
- ❌ No supplier link
- ❌ No invoice number
- ❌ No BTW calculation
- ❌ No PDF document
- ❌ No detailed description
- ❌ Wrong grootboek (4610 instead of 4100)
---
## LEVEL 3: GROOTBOEKMUTATIES
### LINKED Transaction Mutations
Found **2 relevant mutations** for the linked booking:
#### Mutation 1: Creditcard (Credit)
```json
{
"id": "9912125f-bad7-48b5-a953-3fe3faafe516",
"grootboek": {
"id": "f3b0be5f-d201-4b0a-ac69-c95dfdb7fced" // 1190 ICS Creditcard
},
"datum": "2025-03-27T00:00:00",
"dagboek": {
"id": "f3b0be5f-d201-4b0a-ac69-c95dfdb7fced" // 1190 dagboek
},
"omschrijving": "Lulu Press, Inc. 844-2120689 US",
"debet": 0,
"credit": 20, // ← Money OUT of creditcard
"saldo": -20,
"factuurNummer": null,
"relatiePublicIdentifier": null
}
```
#### Mutation 2: Leverancier Crediteuren (Debit)
```json
{
"id": "0ccbb472-1c5b-4363-a2ff-10200936103a",
"grootboek": {
"id": "5435a910-512c-4607-a1d8-abf259ec22ce" // Crediteuren (supplier account)
},
"datum": "2025-03-27T00:00:00",
"dagboek": {
"id": "f3b0be5f-d201-4b0a-ac69-c95dfdb7fced" // 1190 creditcard dagboek
},
"omschrijving": "lulu press",
"debet": 20, // ← Money INTO supplier account
"credit": 0,
"saldo": 20,
"factuurNummer": "LULU-2159981", // ← INVOICE NUMBER!
"relatiePublicIdentifier": {
"id": "8dd629b2-5b5e-47d2-ad02-0b37cd7b919e" // ← SUPPLIER ID!
}
}
```
**Accounting equation:**
```
Debet Crediteuren (5435) €20.00
Credit Creditcard (1190) €20.00
```
The inkoopboeking creates mutations on:
- Expense account (4100): €18.34 debet
- BTW IN HOOG: €1.66 debet
- Supplier account (5435): €20.00 credit
### UNLINKED Transaction Mutations
Found **2 mutations**:
#### Mutation 1: Creditcard (Credit)
```json
{
"id": "79d76621-34ef-435d-820f-45464038eb58",
"grootboek": {
"id": "f3b0be5f-d201-4b0a-ac69-c95dfdb7fced" // 1190 ICS Creditcard
},
"datum": "2025-01-21T00:00:00",
"dagboek": {
"id": "f3b0be5f-d201-4b0a-ac69-c95dfdb7fced"
},
"omschrijving": "Lulu Press, Inc. 844-2120689 US",
"debet": 0,
"credit": 20.14, // ← Money OUT
"saldo": -20.14,
"factuurNummer": null, // ← NO INVOICE!
"relatiePublicIdentifier": null // ← NO SUPPLIER!
}
```
#### Mutation 2: Kosten Automatisering (Debit)
```json
{
"id": "1943d5d5-5983-4b36-b849-b125a4ebc306",
"grootboek": {
"id": "8aaecf2d-d61f-4814-b8cc-f97da5f2a3e9" // 4610 Kosten automatisering
},
"datum": "2025-01-21T00:00:00",
"dagboek": {
"id": "f3b0be5f-d201-4b0a-ac69-c95dfdb7fced"
},
"omschrijving": "Lulu Press, Inc. 844-2120689 US",
"debet": 20.14, // ← Direct expense
"credit": 0,
"saldo": 20.14,
"factuurNummer": null, // ← NO INVOICE!
"relatiePublicIdentifier": null // ← NO SUPPLIER!
}
```
**Accounting equation:**
```
Debet Kosten automatisering (4610) €20.14
Credit Creditcard (1190) €20.14
```
**Problems with this structure:**
- ❌ No supplier (leverancier) tracking
- ❌ No invoice number
- ❌ No BTW calculation or recovery
- ❌ No document attachment possible
- ❌ Wrong expense account (4610 instead of 4100)
- ❌ Cannot track Lulu expenses separately
---
## Complete Booking Flow Comparison
### LINKED (Correct Structure)
```
BANKBOEKING (1190 Creditcard)
├── id: b6999668-ce57-43df-94ec-0150603c35df
├── bedragUitgegeven: €20.00
├── grootboekBoekingsRegels: [] ← EMPTY
└── inkoopboekingBoekingsRegels: [
├── boekingId: 6b78e7b0-bdef-446f-857a-b25f7efdca02 ← LINK!
├── debet: 20
└── credit: 0
]
INKOOPBOEKING (linked via ID above)
├── id: 6b78e7b0-bdef-446f-857a-b25f7efdca02
├── factuurnummer: "LULU-2159981"
├── leverancier: 8dd629b2-5b5e-47d2-ad02-0b37cd7b919e (Lulu Press)
├── factuurbedrag: €20.00
├── boekingsregels: [
│ ├── grootboek: 7149081b-96b0-4a92-88cd-63d4cc6462f2 (4100)
│ ├── bedrag: €18.34
│ └── btwSoort: "Hoog"
│ ]
├── btw: [
│ ├── btwSoort: "InkopenHoog"
│ └── btwBedrag: €1.66
│ ]
└── documents: [ lulu-job-2159981.pdf ]
GROOTBOEKMUTATIES (auto-created)
├── Mutation 1: Creditcard (1190) credit €20.00
└── Mutation 2: Crediteuren (5435) debet €20.00
└── Linked to: Supplier + Invoice number
PLUS: Inkoopboeking creates additional mutations:
├── Mutation 3: Expense (4100) debet €18.34
├── Mutation 4: BTW IN Hoog debet €1.66
└── Mutation 5: Supplier (5435) credit €20.00
```
### UNLINKED (Incorrect/Incomplete Structure)
```
BANKBOEKING (1190 Creditcard)
├── id: ee9752db-b060-45f3-8252-1991fe2a5d28
├── bedragUitgegeven: €20.14
├── grootboekBoekingsRegels: [ ← DIRECT BOOKING!
│ ├── grootboek: 8aaecf2d-d61f-4814-b8cc-f97da5f2a3e9 (4610)
│ ├── debet: 20.14
│ └── btwSoort: null
│ ]
└── inkoopboekingBoekingsRegels: [] ← EMPTY!
NO INKOOPBOEKING
└── (missing all supplier/invoice metadata)
GROOTBOEKMUTATIES (auto-created)
├── Mutation 1: Creditcard (1190) credit €20.14
└── Mutation 2: Kosten autom. (4610) debet €20.14
└── NO supplier link, NO invoice number
```
---
## Grootboek Account Reference
| ID | Number | Name | Usage |
|----|--------|------|-------|
| `f3b0be5f-d201-4b0a-ac69-c95dfdb7fced` | 1190 | ICS Creditcard | Creditcard account |
| `8aaecf2d-d61f-4814-b8cc-f97da5f2a3e9` | 4610 | Kosten automatisering | SaaS costs |
| `7149081b-96b0-4a92-88cd-63d4cc6462f2` | 4100 | Opleidingen & cursussen | Training/courses |
| `5435a910-512c-4607-a1d8-abf259ec22ce` | ? | Crediteuren | Supplier payables |
---
## Key Differences Summary
| Aspect | LINKED | UNLINKED |
|--------|--------|----------|
| **grootboekBoekingsRegels** | [] (empty) | Contains direct booking |
| **inkoopboekingBoekingsRegels** | Contains link | [] (empty) |
| **Supplier tracking** | ✅ Via inkoopboeking | ❌ None |
| **Invoice number** | ✅ LULU-2159981 | ❌ None |
| **BTW handling** | ✅ Calculated (21% NL) | ❌ None |
| **Document** | ✅ PDF attached | ❌ None |
| **Grootboek** | 4100 (correct) | 4610 (wrong) |
| **Description** | "Print job 5374" | Generic |
| **Mutations count** | 5+ (complex) | 2 (simple) |
| **Crediteuren account** | ✅ Used | ❌ Not used |
---
## Why This Matters
### LINKED transactions provide:
1. **Audit trail**: Full chain from creditcard → invoice → supplier
2. **BTW recovery**: Correct VAT tracking for tax returns
3. **Supplier analysis**: Can report total spend per supplier
4. **Document management**: PDFs attached to invoices
5. **Correct categorization**: Proper expense account (4100 vs 4610)
6. **Crediteuren tracking**: Proper liability accounting
### UNLINKED transactions are problematic:
1. **No audit trail**: Can't prove what was purchased
2. **No BTW recovery**: Missing €1.66 VAT (8.3% of cost)
3. **No supplier tracking**: Can't analyze Lulu spending
4. **No documents**: PDFs not linked
5. **Wrong category**: Books in SaaS costs instead of training
6. **Simplified accounting**: Direct expense without proper flow
---
## Pattern for Linking
To convert an UNLINKED transaction to LINKED:
1. **Create inkoopboeking** with:
- `leverancier.id`: supplier ID
- `factuurnummer`: invoice number
- `factuurbedrag`: total amount
- `boekingsregels`: expense lines with correct grootboek + BTW
- `btw`: BTW array
2. **Upload document** (PDF) to the inkoopboeking
3. **Link to bankboeking** via:
```
POST /bankboekingen/{bankboeking-id}
{
"inkoopboekingBoekingsRegels": [
{
"boekingId": { "id": "{inkoopboeking-id}" },
"omschrijving": "description",
"debet": amount,
"credit": 0
}
],
"grootboekBoekingsRegels": [] // Must be empty!
}
```
**CRITICAL:** The `grootboekBoekingsRegels` array MUST be empty when using `inkoopboekingBoekingsRegels`. The grootboek is determined by the inkoopboeking, not the bankboeking.
---
## Grootboek ID Lookup
Additional grootboek IDs found in mutations:
| Grootboek ID | Likely Account |
|--------------|----------------|
| `5435a910-512c-4607-a1d8-abf259ec22ce` | Crediteuren (supplier payables) |
| `e050b9fc-c7a5-4324-a403-8309ca3cb91d` | Possibly 4400 (Reclamekosten) |
---
## Conclusion
The SnelStart booking structure uses a **three-level chain**:
1. **BANKBOEKING**: The transaction itself (€ in/out)
2. **INKOOPBOEKING**: The invoice metadata (supplier, BTW, document)
3. **GROOTBOEKMUTATIES**: The accounting entries (generated automatically)
The **link** between BANKBOEKING and INKOOPBOEKING is established via the `inkoopboekingBoekingsRegels` array with a `boekingId` reference.
When this link exists:
- The bankboeking shows WHICH creditcard transaction
- The inkoopboeking shows WHO (supplier), WHAT (invoice), HOW MUCH (BTW)
- The grootboekmutaties show WHERE (expense account)
When the link is missing, the transaction goes directly from bankboeking to grootboek, bypassing all the metadata and proper accounting structure.
---
*Analysis date: 2026-01-27*
*Analyst: Pattern Recognition Specialist Agent*