2 min read
Isolate the layer
Run healthz first. A non-200 there means the problem is network, proxy or TLS, not your request. If healthz is fine, the issue is in the specific call.
Read the real error
curl -v -X POST https://api.credicorp.co.uk/public/v1/quote \
-H 'Content-Type: application/json' \
-d '{"amount": 999999999}'-v shows the status line, response headers (including X-Request-Id) and the error envelope. A 400 with invalid_amount tells you exactly what to fix.
Common causes
- Wrong host (production vs sandbox) — check your base URL.
- Missing
Content-Type: application/jsonon a POST. - A field out of range — read the product's
min_amount/max_amountfirst. - A corporate proxy rewriting or blocking the request — test from another network.
Frequently asked questions
Where do I start?
With healthz, to separate a network problem from a request problem. Then read the exact status and error.code before changing any code.
What if curl works but my code fails?
The difference is almost always a header or the body encoding. Compare your request to the working curl byte for byte.
Related reading

Quickstart: verify connectivity with the healthz endpoint
Before you debug an integration, prove you can reach the API at all with GET /public/v1/healthz. It is a…
Read →
Quickstart: handle Credicorp API error responses
Every Credicorp API error uses the same envelope: { error: { type, code, message, request_id } }. Branch on…
Read →
Quickstart: Log requests with the request id
The request_id on every response is your thread back to a specific call — log it structured, on success and…
Read →
Quickstart: set the right request headers for the public API
A handful of request headers make the difference between a clean integration and a flaky one. Always send…
Read →Funding for UK limited companies
Credicorp lends to your company, not to you personally — short-term working capital with no personal guarantee. See what your business could access.