Developers
About this page
Real integration boundaries and gated developer surfaces.
Integration
const intent = await ryntra.intents.create<{ id: string }>(input, {
idempotencyKey: "create-order-001",
});
const evaluation = await ryntra.preflight<{
id: string;
evidenceStatus: string;
policyDecision: string;
authorizationStatus: string;
executionStatus: string;
reconciliationStatus: string;
}>(intent.id, { evidence: [evidence] }, {
idempotencyKey: "preflight-order-001",
});
if (evaluation.evidenceStatus !== "COMPLETE") return showMissing(evaluation);
if (evaluation.policyDecision === "BLOCKED_BY_RULE") return showBlockers(evaluation);
const authorization = await ryntra.authorize<{ id: string }>({
intentId: intent.id,
evaluationId: evaluation.id,
fingerprint,
subjectRef,
method: "PARTNER_AUTHENTICATED",
}, { idempotencyKey: "authorize-order-001" });
// The wallet signs. This is the user's action, in their own wallet, and the
// application never holds the key that makes it.
const transactionHash = await partnerWallet.execute(transaction);
await ryntra.executions.record({
intentId: intent.id,
authorizationId: authorization.id,
fingerprint,
transactionHash,
}, { idempotencyKey: "record-order-001" });Endpoints
/v1Create and list intentsPOST · GET /v1/intents
Evidence and deterministic policyPOST /v1/intents/{id}/preflight
Human authorizationPOST /v1/intents/{id}/authorize
Record and reconcile executionPOST /v1/intents/{id}/executions
Lifecycle stateGET /v1/intents/{id}/status
Finalized receiptGET /v1/intents/{id}/receipt
Deployment health and persistenceGET /health