Reference

Error codes

Every non-2xx response carries a detail field plus a stable code starting with L4B-. Use the code — not the HTTP status alone — to branch behaviour, since a single HTTP status covers multiple root causes.

Error table

HTTPL4B codeMeaningHow to fix
400L4B-001Invalid request body / missing required field.Check the params table for the endpoint and re-send.
401L4B-101Missing X-API-Key header.Include the header on every request.
401L4B-102Invalid or revoked API key.Rotate via /developer/dashboard or grab a fresh sandbox key.
402L4B-201Plan does not include this API.Upgrade to the min plan shown in the endpoint's docs page.
403L4B-301This API is disabled on your key.Toggle it on via `POST /developers/apis/toggle` or the dashboard.
404L4B-401Resource / endpoint not found.Verify the URL path and version prefix (`/v1/`).
422L4B-421Payload passed shape validation but failed business rules.Check the response body for `detail` — it names the offending field.
429L4B-491Rate-limited (per-minute burst or monthly quota).Backoff `Retry-After` seconds, or upgrade the plan.
500L4B-901Unexpected server error.Retry with idempotency. Persistent 5xx? File a ticket with the response body.
503L4B-902Downstream provider degraded.Check /developer/status for the affected provider.

Contact support

Still stuck?

If the fix column didn't unblock you, file a ticket with the endpoint, request payload, and full response body. Support SLAs graduate by plan — Free: 72 hours, Starter: 24 hours, Growth: 12 hours, Enterprise: 2 hours.

How to handle LOAN4BANK API errors gracefully

Every non-2xx response from the LOAN4BANK API includes both a standard HTTP status code and a stable `L4B-XXX` code inside the response body. The HTTP status tells you the class of problem (400 for validation, 401 for authentication, 402 for plan gate, 403 for permission, 404 for missing resource, 409 for a conflict, 422 for a semantically valid but rejected payload, 429 for rate limiting and 5xx for platform issues). The `L4B-XXX` code is what your integration should branch on, because a single HTTP status often maps to many different root causes — for example, three different `L4B` codes can each return 400 with a different remediation.

For production-grade robustness, always retry idempotent requests on 429 and 5xx responses using exponential backoff with jitter, honouring the `Retry-After` header when present. Never retry a 4xx response other than 408 and 429 — you'll only trip circuit breakers on your side. Log the request id from the `X-Request-Id` response header on every failure; our support team can pull the full server-side trace with just that id, so tickets close in minutes instead of hours.

Webhooks add a second failure surface. Any 4xx or 5xx you return from your endpoint puts the delivery into our retry queue (5 attempts over 24 hours with exponential backoff). If your handler is temporarily degraded, return 503 explicitly so we back off aggressively; if the payload is genuinely bad, return 422 so we mark the delivery as permanently failed and surface the reason on your dashboard. Always verify the `X-L4B-Signature` header before parsing the body — a signature mismatch is code `L4B-WBHK-401` and should never be treated as a transient problem.

Frequently asked questions

What is the difference between HTTP status and L4B error code?
The HTTP status is the transport-level category (e.g., 400 Bad Request). The L4B code names the exact root cause (e.g., L4B-VAL-006 for a missing pincode versus L4B-VAL-014 for an invalid PAN). Branch your code on the L4B code — one HTTP status maps to many L4B codes.
Which LOAN4BANK API errors are safe to retry?
408 Request Timeout, 429 Too Many Requests, 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable and 504 Gateway Timeout are safe to retry with exponential backoff and jitter, provided the request is idempotent. Never retry 400, 401, 402, 403, 404, 409 or 422 — those need a code change, not another attempt.
How do I contact support about a specific API error?
Grab the X-Request-Id response header, the exact endpoint URL, the request payload with secrets redacted, and the full response body. Email developers@loan4bank.com or open a ticket from your developer account — Enterprise SLA is 2 hours, Growth is 12 hours, Starter is 24 hours and Free is 72 hours.
What is the LOAN4BANK API rate limit?
Sandbox keys allow 60 requests per minute burst, 3,000 per day. Live keys start at 300 requests per minute burst and 100,000 per day on the Starter plan, scaling up per plan tier. Rate-limit responses (429) carry an X-RateLimit-Reset header telling you the epoch second the window resets.
How do webhook retries and error codes work?
If your endpoint returns 5xx or times out, we retry 5 times over 24 hours with exponential backoff. If your endpoint returns 4xx, we stop retrying and mark the delivery as permanently failed. Return 503 for transient issues, 422 for permanently bad payloads, and 200 for anything you have accepted for processing.

Still stuck? Every error row on this page carries a fix column with the concrete steps to resolve it. If your case doesn't match any row, file a ticket with the X-Request-Id and we'll take it from there.