Create booking intent directly
Creates a new booking intent directly in the ledger. The intent may consist of a simple booking or a multi-line split booking. The debit and credit amounts across all booking lines must balance. For VAT bookings, two equivalent paths are available: either raw lines with explicit SKR04 tax accounts, or an optional tax_code per line that references a tax code available via GET /v1/tax-codes. When tax_code is used, the API books the gross amount and deterministically splits the line into net plus tax to the configured vat_account (default case) or additionally generates a self-assessment counter-booking to self_assess_account (reverse charge / §13b / intra-Community acquisition). Manual tax-account lines and tax_code must not be mixed within a single booking.
/v1/bookings ll_.... Pass as a Bearer token. 13 or 14 for closing periods fx is provided. EUR bookings omit fx or set it to null. string, number, boolean or null. Immutable after creation. POST /v1/documents. tax_code, this is the gross amount which the API automatically splits into net + tax. tax_code, this is the gross amount which the API automatically splits into net + tax. VST19, UST19, VST-IGE19, VST-13B19) from GET /v1/tax-codes. When set, the API automatically splits the line into net and tax portions. Must not be combined with manual tax-account lines. The line must occupy exactly one of debit or credit. FX bookings with self-assessment tax codes are currently not supported. EUR) ECB, manual, bank /v1/bookings -cmd">curl --request -method">POST -punct">\
--url 'https://api.ledgerlou.de/v1/bookings' -punct">\
--header 'Authorization: Bearer ll_your_key' -punct">\
--header 'Content-Type: application/json' -punct">\
--data '{
"booking_date": "2025-06-01",
"description": "Büromaterial Einkauf",
"lines": [
{
"account_number": "6815",
"account_name": "Bürobedarf",
"debit": 119,
"credit": 0,
"tax_code": "VST19"
},
{
"account_number": "1200",
"account_name": "Bank",
"debit": 0,
"credit": 119
}
]
}' {
"intent_id": "<string>",
"event_count": 1
}