Jobs

Invoice due date and late interest

Invoice due date and late interest: is this invoice overdue, by how many days, and the statutory late-payment (or statutory) interest owed, rate and workings cited. Countries here: AT, BE, BG, CY, DE, DK, EE, ES, FI, FR, GB, GR, HR, IE, IT, LT, LU, LV, MT, NL, PL, PT, SE, SI, SK, CH, CZ, HU, IS, NO, RO, RS, TR. Others refused free.

post/v1/jobs/invoice-payable

Request

  • Base URL: https://euroref.dev
  • URL: https://euroref.dev/v1/jobs/invoice-payable
  • Auth: one of:
    • API key in header PAYMENT-SIGNATURE
    • API key in header X-PAYMENT
    • API key in header X-API-Key

Headers

X-Free-Trial'1'

Opt in to the free trial (3 calls/day/IP).

Request body

country'at' | 'be' | 'bg' | 'cy' | 'de' | 'dk' | 'ee' | 'es' | 'fi' | 'fr' | 'gb' | 'gr' | 'hr' | 'ie' | 'it' | 'lt' | 'lu' | 'lv' | 'mt' | 'nl' | 'pl' | 'pt' | 'se' | 'si' | 'sk' | 'ch' | 'cz' | 'hu' | 'is' | 'no' | 'ro' | 'rs' | 'tr' required

Late-payment regime: AT, BE, BG, CY, DE, DK, EE, ES, FI, FR, GB, GR, HR, IE, IT, LT, LU, LV, MT, NL, PL, PT, SE, SI, SK. Statutory interest only: CH, CZ, HU, IS, NO, RO, RS, TR.

principalnumber required

Unpaid amount, local currency

due_datestring date

Contractual due date; or send invoice_date + terms_days

invoice_datestring date
terms_daysinteger

Agreed payment term in days (no default is assumed)

as_ofstring date

Payment date or the day asked about; default today; not in the future

debtor'business' | 'public_authority' | 'consumer'

Default business. Consumer debts use statutory interest only

receiptboolean

Optional. Default false. When true, a paid HTTP 200 embeds an Ed25519-signed receipt (kind answer_receipt) the caller can file and later verify at /certified/public-key. Included in this answer's existing price — no extra charge. The field is omitted on unpaid 402 and on free 4xx refusals. This is not a series certified extract: GET /v1/certified/{country}/{series} is a different artifact, with its own price.

Response

Dossier: due date (with weekend/holiday flag), verdict (overdue, days_overdue, interest), interest workings (per-period and fixed-at-default when the rate changed), regime notes, evidence. Optional property receipt (schema AnswerReceipt, kind answer_receipt) is present only when the request set receipt:true and this response is a paid HTTP 200. Unpaid 402 and free 4xx refusals do not include receipt. Not a series certified extract (GET /v1/certified/{country}/{series}).

confidence_label'high' | 'medium' | 'low'

Derived from source type, verification age, stale. Rules: /label-rules

coverage_label'ready' | 'partial' | 'gap'

ready=complete, partial=limited, gap=no number. Rules: /label-rules

label_basisobject

Inputs and rule ids behind both labels

Example response

{
  "receipt": {
    "kind": "answer_receipt",
    "receipt_id": "0123456789abcdef01234567",
    "answer": "vat",
    "request": {
      "country": "za",
      "amount": 100,
      "mode": "add",
      "receipt": true
    },
    "result": {
      "status": "ok"
    },
    "cited_series": [
      {
        "country": "za",
        "series_id": "vat",
        "value": null,
        "last_confirmed": "2026-04-01",
        "source_url": null,
        "source_sha256": null
      }
    ],
    "issued_at": "2026-09-25T15:45:00.000Z",
    "limitations": [
      "This receipt is not a series certified extract (GET /v1/certified/{country}/{series}).",
      "This receipt is not legal advice. It only covers the computation over the cited series as of each series' last_confirmed."
    ],
    "signature": {
      "alg": "Ed25519",
      "key_id": "<same key_id as /certified/public-key>",
      "public_key": "https://example.invalid/certified/public-key",
      "signed_payload": "canonical JSON of answer_receipt: keys sorted recursively, no whitespace (see /certified/public-key)",
      "value": "<base64>"
    }
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.