Capability catalog
Read the shared product scope and distinguish tools, demonstrations and proposed integrations.
Open catalog →HCRB / Code402 API and tools
One complete request, the same engine as the workbench, and an inspectable JSON report. Start with synthetic records; no account, wallet, payment or API key is required.
Selected example: Records agree. The supplied order, payment and delivered units agree. Inspect these records visually or export all five examples.
Copy the complete JavaScript below into a file named compare.mjs. With Node.js 22 or newer installed, run node compare.mjs in that folder on Windows, macOS or Linux. Nothing executes on this page. The command sends these synthetic records to HCRB once.
// Save as compare.mjs and run: node compare.mjs (Node.js 22 or newer).
// Synthetic records only. This sends one free comparison request, never a payment.
const input = {
"order": {
"orderId": "sample-order-001",
"payeeId": "sample-supplier-001",
"currency": "USD",
"amountMinor": "5000",
"units": "100",
"unitCode": "API_CALL",
"approvedAtMs": 1750000000000,
"deliveryDueAtMs": 1750003600000
},
"payments": [
{
"reference": "sample-payment-001",
"orderId": "sample-order-001",
"payeeId": "sample-supplier-001",
"currency": "USD",
"amountMinor": "5000",
"settledAtMs": 1750000060000
}
],
"deliveries": [
{
"reference": "sample-delivery-001",
"orderId": "sample-order-001",
"payeeId": "sample-supplier-001",
"units": "100",
"unitCode": "API_CALL",
"deliveredAtMs": 1750000120000
}
]
};
const response = await fetch("https://hcrb.in/commerce/reconcile", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(input),
});
const result = await response.json();
if (!response.ok) {
throw new Error("Comparison refused (HTTP " + response.status + "): " + JSON.stringify(result));
}
console.log(JSON.stringify(result, null, 2));
// HTTP 200 means comparison completed. Read status, issues and next_action.
// The report is unsigned and does not prove settlement or authorize payment.
This equivalent command includes its input; no separate file or SDK is needed. On Windows use the Node.js example above.
curl --fail-with-body --silent --show-error https://hcrb.in/commerce/reconcile \
-H 'Content-Type: application/json' \
--data-binary '{"order":{"orderId":"sample-order-001","payeeId":"sample-supplier-001","currency":"USD","amountMinor":"5000","units":"100","unitCode":"API_CALL","approvedAtMs":1750000000000,"deliveryDueAtMs":1750003600000},"payments":[{"reference":"sample-payment-001","orderId":"sample-order-001","payeeId":"sample-supplier-001","currency":"USD","amountMinor":"5000","settledAtMs":1750000060000}],"deliveries":[{"reference":"sample-delivery-001","orderId":"sample-order-001","payeeId":"sample-supplier-001","units":"100","unitCode":"API_CALL","deliveredAtMs":1750000120000}]}'The expected status is matched. issues identifies record paths to inspect. next_action explains the next review step and always sets payment_authorized to false.
The supplied records agree. Independently establish authority, settlement and delivery before relying on them; do not infer permission to pay.
This report does not authorize a payment. Keep the original records and the JSON result together.
{
"schemaVersion": "1",
"scope": "supplied-data-consistency-only",
"limitations": [
"Supplied approval, identity, ownership, settlement and delivery claims are not independently verified.",
"Duplicate detection covers only the supplied arrays, not other requests or external systems.",
"Currency labels, minor-unit conventions, reference namespaces and unit definitions must be agreed by the caller.",
"No funds are moved, held, reversed or refunded; matched is not a security, legal or delivery-quality guarantee."
],
"status": "matched",
"orderId": "sample-order-001",
"totals": {
"paidAmountMinor": "5000",
"deliveredUnits": "100"
},
"issues": [],
"next_action": {
"action": "inspect_evidence",
"payment_authorized": false,
"instruction": "The supplied records agree. Independently establish authority, settlement and delivery before relying on them; do not infer permission to pay."
}
}This comparison response is unsigned. It checks the consistency of supplied records; it does not independently confirm payment, delivery, authorization or quality.
Replace the synthetic values with redacted records you are permitted to share. Preserve the exact JSON field names. Supply an order plus arrays of payment and delivery records. Amounts and units are integer strings, not floating-point numbers. Currency labels must match; timestamps are integer epoch milliseconds. Do not send credentials, private keys, payment signatures or personal account details.
The handler is stateless: it does not retain the submitted records or execute payments. Your client must retain the response and source records. Read the service privacy policy for request metadata handling.
Maximum request: 65,536 bytes, 100 payment records and 100 delivery records. Server clients use https://hcrb.in/commerce/reconcile. Direct browser calls work only from a page hosted on HCRB or Code402 using its same-origin /commerce/reconcile route. For a browser app on your own domain, call your own backend and have it send the server request; a relative URL on your domain does not reach this service. Cross-origin browser calls are refused. The Node.js example is a server client.
| HTTP status | Meaning and next step |
|---|---|
| 200 | The comparison ran. Read matched, mismatch or incomplete; never treat HTTP success as permission to pay. |
| 400 / 422 | Malformed JSON or invalid input. Correct the request using the returned error or issue paths. |
| 403 / 405 / 415 | Wrong browser origin, method or media type. Use same-origin browser requests, POST and uncompressed application/json. |
| 408 / 413 | Input timed out or exceeded the size limit. Check the connection or reduce the input within documented limits. |
| 500 / network failure | No usable comparison result. Keep your records and escalate or retry the free comparison after resolving the failure. Never infer a completed comparison. |
No SDK, automatic retry, payment or allowance consumption is part of this comparison. Paid tool routes have their own contracts: preserve the original operation and use documented recovery for that route and client version. Never create a replacement payment merely because a response was lost.
Before an engagement, agree the evidence, acceptance test, price and schedule. No customer savings or production reliability claim is established by these synthetic examples.
Separate existing API offer
The tools below are separate from the free comparison. Inspect each tool’s scope, current allowance, price and receipt contract before use.
Inspect the manifest before selecting a tool. Read its input, price and scope.
Root manifest · MCP discovery · UCP discovery
The sample may use an available free allowance. If the server responds with HTTP 402, inspect the payment requirements. This example does not sign or submit a payment.
Inspect the check result and any returned receipt. An HTTP 200 alone does not mean an identifier is valid. No receipt should be inferred when none is returned.
curl https://hcrb.in/?format=json
curl https://hcrb.in/v1/tools/iban-check/call \
-H 'Content-Type: application/json' \
-d '{"input":{"iban":"GB82WEST12345698765432"}}'Requests above contact the live service when you run them. Nothing runs automatically on this page.
{
"mcpServers": {
"code402": {
"url": "https://hcrb.in/mcp"
}
}
}For MCP clients that support remote HTTP server configuration. Client setup varies.
Full integration guide ↗Read the shared product scope and distinguish tools, demonstrations and proposed integrations.
Open catalog →Inspect both source records and computed results. No account or payment is needed.
Open example JSON →Use the machine surface for authenticated calls and the published API specification.
OpenAPI specification →