# Will They Pay Me On Time?

A large customer's payment habits read from the supplier's side, with what its lateness is worth on your invoice.

Typical days to pay against your terms, late and over-60-day rates, the trend, and the statutory interest plus compensation its lateness is worth on your invoice. From the government's Payment Practices reports and the Bank's own rate.

Large UK companies must report every six months how fast they pay their suppliers. Read from the supplier's side, those reports answer the question a small business actually has before it takes an order: when will this customer pay an invoice at my terms, how often is it late, how often past 60 days, and is it getting better or worse. This endpoint says all of that in plain English, and prices the typical lateness on your invoice at the statutory rate (interest at 8% over the Bank Rate plus the fixed compensation), so the number on the quote and the number in the chasing letter are both ready. A company that doesn't report (smaller ones don't have to) is said so; nothing is guessed. Late payment hits about a quarter of small firms a year: this is the data they never see.

- Price: 1 credit
- Page: https://meetkatalis.com/apis/will-they-pay
- OpenAPI: https://meetkatalis.com/openapi.yaml

## Endpoints

- `GET /api/v1/will-they-pay?company=…&invoice=…&terms=…` — A company number or name; invoice in pounds (default 1000), terms in days (default 30)

## Call it

```bash
curl -H "x-api-key: $KATALIS_API_KEY" \
  "https://meetkatalis.com/api/v1/will-they-pay?company=00519500&invoice=5000&terms=30"
```

```javascript
const res = await fetch("https://meetkatalis.com/api/v1/will-they-pay?company=00519500&invoice=5000&terms=30", {
  headers: { "x-api-key": process.env.KATALIS_API_KEY },
});
if (!res.ok) throw new Error(`Katalis ${res.status}: ${await res.text()}`);
console.log(await res.json());
```

```python
import os, requests

r = requests.get(
    "https://meetkatalis.com/api/v1/will-they-pay?company=00519500&invoice=5000&terms=30",
    headers={"x-api-key": os.environ["KATALIS_API_KEY"]},
    timeout=60,
)
r.raise_for_status()
print(r.json())
```

## Example response (a real reply)

```json
{
  "company": { "name": "TESCO STORES LIMITED", "number": "00519500" },
  "reported": true,
  "yourInvoice": { "amount": 5000, "termsDays": 30 },
  "typically": { "daysToPay": 43, "daysLateAgainstYourTerms": 13, "paidLateAgainstItsTermsPct": 1, "paidAfter60DaysPct": 5, "paidWithin30DaysPct": 13 },
  "trend": "steady",
  "worthToYou": { "statutoryInterest": 20.92, "fixedCompensation": 70, "total": 90.92, "ratePct": 11.75, "assumes": "due 2026-11-06, paid 13 days later" },
  "latestReport": { "period": { "start": "2026-03-02", "end": "2026-08-30", "filed": "2026-09-29" }, "offers": { "eInvoicing": true, "supplyChainFinance": true } },
  "reading": "TESCO STORES LIMITED reports paying its suppliers in 43 days on average, so an invoice at 30-day terms is typically paid about 13 days late. It paid 1% of invoices later than the terms it had agreed, and 5% after 60 days. On a £5,000 invoice, 13 days late is worth £20.92 statutory interest plus £70 fixed compensation (£90.92) at 11.75%."
}
```

## What you'd build with it

- **Quoting and credit control.** Before you accept a 60-day customer: what 60 days really means with this one, and what it's worth in interest.
- **Invoicing and AR software.** Show the expected pay date and the statutory sums next to every invoice to a reporting company.
- **Accountants and advisers.** A one-line answer for a client asking whether to take a big customer on.

## Why this one

- **The supplier's question, not the reporter's table.** Days late against YOUR terms and pounds owed on YOUR invoice, not a grid of percentages.
- **Priced at the statutory rate.** Interest at 8% over the Bank Rate on the right reference date, plus the fixed compensation, ready for the chasing letter.
- **Nothing guessed.** A company that doesn't report is said so; every figure is the company's own filing.

## Conventions

- Auth: `x-api-key: kat_live_…` on every request (free key at https://meetkatalis.com/developers: a verified email and mobile, 100 credits a month, no card).
- One credit balance across every API; each endpoint's price is on its page and in `x-credits` in https://meetkatalis.com/openapi.yaml.
- Keys are camelCase everywhere. A registered company is `company: { name, number, status, statusDetail?, filingsOverdue? }` on the register endpoints; the enrichment family (enrich, score, assess, brand-kit, ai-visibility, tender-match) keeps `business` / `profile` with `companyNumber`.
- Every error has `code` and `requestId`; every reply an `x-request-id` header; a charged reply `x-credits-remaining`; a reply that gave credits back `x-credits-refunded`. Missing = 404 with `query`.
- Burst ceiling 60 requests a minute per key (429, `Retry-After`, no credits used). A failure on our side (5xx) gives the call's credits back.
- Company data contains public sector information licensed under the Open Government Licence v3.0.

Provided "as is"; results come from public sources and, in places, AI, and may be inaccurate or out of date; not legal, professional or credit advice. Terms: https://meetkatalis.com/apis/terms