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
| Parameter | Description |
|---|---|
| scheme | Scheme identifier, e.g. fps (case-insensitive). |
| code | The exact error code, e.g. 1114. |
Example request
curl https://fpserrorcodes.co.uk/api/code/fps/1114Success 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
| Field | Type | Description |
|---|---|---|
| code | string | The 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. |
| category | string | Grouping such as Account, System, Limits, Format, Security, Agency, Other. |
| shortDescription | string | Brief one-line description of the code. |
| detailedExplanation | string | Plain-English explanation, two to three sentences. |
| commonCauses | string[] | Likely causes from a developer or ops perspective. |
| customerMessage | string | A polite, non-technical message suitable for an end user. |
| remediationSteps | string[] | Actionable steps to resolve, ordered by likelihood. |
| severity | "fatal" | "retryable" | Whether the payment can sensibly be retried. |
| relatedCodes | string[] (optional) | Related codes for cross-reference. |
| lastVerified | string (ISO 8601) | Date the code was last checked against its source. |
| source | string | Primary 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-dataResponse (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
| Field | Type | Description |
|---|---|---|
| kind | "fps" | "iso" | Which dataset the entry came from. |
| code | string | The code (e.g. "1114", "AC04"). |
| title | string | Display title (FPS short description or ISO description). |
| category | string | Category for grouping. |
| type | "REJ" | "RET" (optional) | REJ/RET, FPS entries only. |
| severity | "fatal" | "retryable" (optional) | Severity, FPS entries only. |
| href | string | Destination URL for the entry on this site. |
| crossRef | string (optional) | Short cross-reference hint, e.g. "↔ AC04". |
Prefer to browse? See all codes on the codes page or read the FAQ.