# Supplier Payment Practices

How fast does this company pay its suppliers? From its own statutory reports, benchmarked.

A company's own Payment Practices reports, read: average days to pay, the share paid late against agreed terms, its terms, the trend over its last reports, and where it ranks among all 6,000+ recent reporters, with plain advice for suppliers.

Large UK companies must report twice a year how fast they pay their suppliers: average days, how much is paid late against agreed terms, their standard and maximum terms. It's all published, 115,000 reports across more than 10,000 companies, and almost nobody reads it before taking on a big customer. This endpoint does: one call returns a company's latest report, its trend over the reports before, where it sits against every other company that reports, and a plain reading for the small firm deciding whether (and on what terms) to supply it.

- Price: 1 credit
- Page: https://meetkatalis.com/apis/payment-practices
- OpenAPI: https://meetkatalis.com/openapi.yaml

## Endpoints

- `GET /api/v1/payment-practices?company=…` — By company number or name (a name lists the other reporting companies it matches)

## Call it

```bash
curl -H "x-api-key: $KATALIS_API_KEY" \
  "https://meetkatalis.com/api/v1/payment-practices?company=00502851"
```

```javascript
const res = await fetch("https://meetkatalis.com/api/v1/payment-practices?company=00502851", {
  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/payment-practices?company=00502851",
    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,
  "latest": {
    "period": { "start": "2026-03-02", "end": "2026-08-30", "filed": "2026-09-29" },
    "averageDaysToPay": 43, "paidWithin30Days": 13, "paid31to60Days": 82, "paidAfter60Days": 5, "paidLateAgainstTerms": 1, "notPaidDueToDispute": 0,
    "terms": { "shortest": 5, "longest": 90, "maximumContractual": 90 },
    "offers": { "paymentCode": null, "eInvoicing": true, "supplyChainFinance": true },
    "source": "https://check-payment-practices.service.gov.uk/report/117091"
  },
  "trend": "steady",
  "history": [
    { "periodEnd": "2026-08-30", "averageDaysToPay": 43, "paidLateAgainstTerms": 1 },
    { "periodEnd": "2026-03-01", "averageDaysToPay": 43, "paidLateAgainstTerms": 1 },
    { "periodEnd": "2025-08-24", "averageDaysToPay": 43, "paidLateAgainstTerms": 1 }
  ],
  "benchmark": { "reporters": 6502, "medianDaysToPay": 31, "medianPaidLate": 15, "slowerThanPercentOfReporters": 74, "lateMoreOftenThanPercentOfReporters": 8 },
  "reading": "TESCO STORES LIMITED reports paying suppliers in 43 days on average (the median large company: 31). 1% of its invoices were paid later than agreed terms (median: 15%). That's slower than 74% of companies that report.",
  "forSuppliers": ["Its reported times are within normal terms; still agree the terms in writing.", "It says it offers supply-chain finance: ask about being paid early through it.", "It offers e-invoicing, which usually speeds payment: ask to use it."]
}
```

## What you'd build with it

- **Before you take the contract.** A small supplier checks a prospective customer's real payment record, and asks for 30-day terms in writing when it's slow.
- **Credit control and invoice finance.** Score debtors by how they actually pay, not by their size; flag the ones getting slower.
- **Procurement and bid tools.** Show a buyer's payment record next to every tender, so suppliers bid with open eyes.

## Why this one

- **Read, not just returned.** The raw filings are a 100 MB spreadsheet; this gives the answer, the trend and the rank in one call.
- **Benchmarked against everyone.** Every figure sits next to the median of all recent reporters, and the company's percentile.
- **For the supplier's side.** Written for the small firm owed the money: what to agree before starting, and what the customer offers (supply-chain finance, e-invoicing, a payment code).
- **Refreshed weekly, attributed.** Reloaded from the government's export every week (Open Government Licence); figures are as reported, never altered.

## 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