Developers

Two read-only JSON endpoints expose the same data that powers this site. They are unauthenticated and intended for lightweight, programmatic lookups.

No authentication · Read-only · Unofficial community reference. These endpoints return the project's aggregated data; they are not an official Pay.UK or bank API. See the references for sources.

Look up a single code

GET /api/code/{scheme}/{code}

Path parameters

ParameterDescription
schemeScheme identifier, e.g. fps (case-insensitive).
codeThe exact error code, e.g. 1114.

Example request

curl https://fpserrorcodes.co.uk/api/code/fps/1114

Success response (200)

Returns { success: true, data: ErrorCode }.

{
  "success": true,
  "data": {
    "code": "1114",
    "type": "REJ",
    "scheme": "FPS",
    "category": "Account",
    "shortDescription": "Beneficiary sort code/account number unknown",
    "detailedExplanation": "The receiving bank couldn't find an account matching the sort code and account number provided. This is the most common FPS rejection, typically caused by typos when entering payment details.",
    "commonCauses": [
      "Typo in account number or sort code",
      "Customer provided old or closed account details",
      "Sort code doesn't belong to the bank expected",
      "Account number has wrong number of digits"
    ],
    "customerMessage": "We couldn't find the account you're trying to pay. Please double-check the sort code and account number with the recipient.",
    "remediationSteps": [
      "Ask the beneficiary to confirm their current account details",
      "Verify the sort code matches the bank (use a sort code checker)",
      "Ensure account number is 8 digits (pad with leading zeros if needed)",
      "Retry the payment with corrected details"
    ],
    "severity": "fatal",
    "relatedCodes": ["1176", "00000001"],
    "lastVerified": "2026-01-25",
    "source": "LHV Connect"
  }
}

Not found (404)

Returns { error, message }.

{
  "error": "Code not found",
  "message": "No error code found for scheme \"fps\" and code \"9999\""
}

The ErrorCode object

FieldTypeDescription
codestringThe error code (e.g. "1114" or "00000001").
type"REJ" | "RET"REJ = scheme rejection (pre-acceptance), RET = bank return (post-acceptance).
scheme"FPS" | "ISO20022"Payment scheme identifier.
categorystringGrouping such as Account, System, Limits, Format, Security, Agency, Other.
shortDescriptionstringBrief one-line description of the code.
detailedExplanationstringPlain-English explanation, two to three sentences.
commonCausesstring[]Likely causes from a developer or ops perspective.
customerMessagestringA polite, non-technical message suitable for an end user.
remediationStepsstring[]Actionable steps to resolve, ordered by likelihood.
severity"fatal" | "retryable"Whether the payment can sensibly be retried.
relatedCodesstring[] (optional)Related codes for cross-reference.
lastVerifiedstring (ISO 8601)Date the code was last checked against its source.
sourcestringPrimary source for the code's data.

Fetch the search index

GET /api/search-data

Returns a SearchEntry[] covering both FPS and ISO 20022 codes. This is the same dataset that powers search on this site, so it is handy for building your own lookup or autocomplete.

Example request

curl https://fpserrorcodes.co.uk/api/search-data

Response (200)

An array of entries (truncated to one item below):

[
  {
    "kind": "fps",
    "code": "1114",
    "title": "Beneficiary sort code/account number unknown",
    "category": "Account",
    "type": "REJ",
    "severity": "fatal",
    "href": "/code/fps/1114",
    "crossRef": "↔ AC01"
  }
]

The SearchEntry object

FieldTypeDescription
kind"fps" | "iso"Which dataset the entry came from.
codestringThe code (e.g. "1114", "AC04").
titlestringDisplay title (FPS short description or ISO description).
categorystringCategory for grouping.
type"REJ" | "RET" (optional)REJ/RET, FPS entries only.
severity"fatal" | "retryable" (optional)Severity, FPS entries only.
hrefstringDestination URL for the entry on this site.
crossRefstring (optional)Short cross-reference hint, e.g. "↔ AC04".

Prefer to browse? See all codes on the codes page or read the FAQ.