The whole chain, one API
Most billing APIs stop when the invoice is overdue. Here the same resource flows
through §9b-compliant reminders into real debt collection — POST /invoices/{id}/collect
is one call, not a hand-off to another vendor.
curl -X POST https://app.rieck.nu/api/v1/invoices?issue=true&send=true \ -H "Authorization: Bearer $RIECK_API_KEY" \ -H "Idempotency-Key: order-2041" \ -d '{ "customer": { "type": "company", "name": "Acme ApS", "cvr": "12345678", "email": "ap@acme.example" }, "lines": [{ "description": "Consulting", "quantity": 10, "unitPriceOere": 95000 }] }'One call: customer (find-or-create) → invoice → sequential number + locked PDF → sent. Unpaid? The reminder engine and debt collection take it from there — lawfully.
The whole chain, one API
Most billing APIs stop when the invoice is overdue. Here the same resource flows
through §9b-compliant reminders into real debt collection — POST /invoices/{id}/collect
is one call, not a hand-off to another vendor.
Compliance is enforced, not documented
Statutory reminder fees, four-eyes approval on dunning flows, immutable issued invoices, unbroken number series — the database enforces the floor. You configure aggressiveness; you cannot configure your way into a lawsuit.
Idempotent by contract
Every mutating call requires an Idempotency-Key. Same key, same payload — same
response, replayed. Payments book on your key. Retry fearlessly.
Events you can trust
Signed webhooks (standardwebhooks) with replay, plus a pull feed
(GET /v1/events?since=) in the exact delivery shape — downtime never costs you data.