developers
An API designed to be integrated once
How the Koshio APIs are designed, taken from the draft API contract. Detailed documentation is shared during onboarding.
by design
How the API is designed
One route per check
Each check has its own typed operation and schema, so your client knows exactly what it can send.
POST /v1/capabilities/{check}/requestsPurpose and consent in every request
Every request names an approved purpose and carries a consent record wherever the source or your policy needs one.
context.purpose · context.consentArtifactOne response shape
Every check answers with the same envelope: a status, the result, its quality, any policy assessment and references to the evidence behind it.
status · result · quality · assessment · evidenceReferencesSafe retries
Every create carries an idempotency key, so a retry after a timeout never runs a check twice or charges for it twice.
Idempotency-KeyErrors you can act on
Errors follow RFC 9457 problem details, with a stable code, whether a retry may help, and the request and trace IDs to quote.
application/problem+jsonLonger checks without holding a connection
Checks that take longer are accepted straight away and can be read back by request ID when they finish.
GET /v1/requests/{requestId}Short-lived credentials
Calls use short-lived tokens from OAuth client credentials or mutual TLS, scoped to one customer and environment.
Authorization: Bearer …
sample
A request, end to end
From the draft contract, filled with synthetic values. Fields may change before release.
POST /v1/capabilities/pan-verification-status/requests
Request
{
"context": {
"groupId": "SYNTHETIC-GROUP-001",
"purpose": "SYNTHETIC-PURPOSE-ONBOARDING",
"testDataMarker": "SYNTHETIC_TEST_DATA"
},
"input": {
"pan": "SYNTHETIC-PAN-NOT-FOR-LIVE-USE"
}
}Response
{
"requestId": "SYNTHETIC-REQUEST-0001",
"status": "completed",
"capability": "pan-verification-status",
"capabilityVersion": "SYNTHETIC-2026-10",
"result": {
"registryStatus": "active",
"attributes": {
"nameOnRecord": {
"value": "SYNTHETIC APPLICANT",
"source": "SYNTHETIC-SOURCE",
"asOf": "2026-10-15T09:29:58Z"
},
"holderType": {
"value": "individual",
"source": "SYNTHETIC-SOURCE",
"asOf": "2026-10-15T09:29:58Z"
}
}
},
"assessment": {
"outcome": "pass",
"policyVersion": "SYNTHETIC-POLICY-1",
"reasonCodes": [
"PAN_ACTIVE"
]
},
"evidenceReferences": [
{
"kind": "source-receipt",
"reference": "SYNTHETIC-EVIDENCE-0001"
}
],
"completedAt": "2026-10-15T09:30:00Z"
}documentation
Documentation
Detailed documentation, including every schema and error code, is shared during onboarding. Book a demo and we'll walk your engineers through the contract.
Bring your engineers
We'll go through the contract with your team and map it to your flow.
Or write to sales@koshio.in
