{% extends "base.html" %} {% block title %}{{ refund.effect.reference }} · KarmaSakshi Control Center{% endblock %} {% block content %}
Refund effect · {{ refund.effect.reference }}

{{ refund.effect.currency }} {{ "%.2f"|format(refund.effect.amount_minor_units / 100) }} to {{ refund.effect.beneficiary }}

{{ refund.manifest_id }}
{{ refund.manifest_hash }}

{{ refund.decision_status }}
{% if notice %}
{{ notice }}
{% endif %}

Exact before and after

Bound by manifest hash
Before
Source account
{{ refund.effect.source_account }}
Source balance
{{ refund.effect.currency }} {{ "%.2f"|format(refund.effect.source_balance_before_minor_units / 100) }}
Beneficiary credit from this effect
{{ refund.effect.currency }} {{ "%.2f"|format(refund.effect.beneficiary_credit_before_minor_units / 100) }}
Expected after
Source balance
{{ refund.effect.currency }} {{ "%.2f"|format(refund.effect.source_balance_expected_after_minor_units / 100) }}
Beneficiary
{{ refund.effect.beneficiary }}
Exact credit
+ {{ refund.effect.currency }} {{ "%.2f"|format(refund.effect.beneficiary_credit_expected_after_minor_units / 100) }}

Fee: {{ refund.effect.currency }} {{ "%.2f"|format(refund.effect.fee_minor_units / 100) }} · Idempotency key: {{ refund.effect.idempotency_key }}

Risk assessment

{{ refund.assessment.score }}/100 · {{ refund.assessment.risk_level }}
{% for signal in refund.assessment.signals %}
{{ signal.name|replace('_',' ') }}
{{ signal.detail }}
+{{ signal.weight }}
{% endfor %}

{{ refund.assessment.explanation }}

Policy decision

{{ refund.policy_decision.recommendation }}
Policy
{{ refund.policy_decision.policy_id }} · v{{ refund.policy_decision.policy_version }}
Human approvals
{{ refund.policy_decision.completed_human_approvals }} / {{ refund.policy_decision.required_human_approvals }} completed
Required verification
{{ refund.policy_decision.required_verification_strength }}
Active policy bundle
{{ refund.policy_decision.active_policy_bundle_id or "None activated" }}
Bound bundle hash
{{ refund.policy_decision.bound_policy_bundle_hash or "Not yet bound" }}
{% if refund.can_approve %}

Human decision

Your authenticated server-side identity will be recorded. It cannot be supplied or changed by this form.

{% elif refund.decision_status == "denied" %}

Authorization denied

{{ refund.denial_reason }}

Recorded by {{ refund.denied_by }}. This effect remains uncommitted and cannot be approved.

{% endif %}

Outcome status

{{ refund.verification_status|replace('_',' ') }}
Lifecycle
{{ refund.lifecycle_state }}
Commit result
{% if refund.commit_attempted %}{{ "success" if refund.commit_success else "not confirmed" }}{% else %}not attempted{% endif %}
Provider reference
{{ refund.provider_reference or "—" }}
Observed after-state digest
{{ refund.effect.observed_after_state_digest or "Awaiting independent observation" }}
{% if refund.commit_detail %}
Commit detail
{{ refund.commit_detail }}
{% endif %} {% if refund.verification_detail %}
Verification detail
{{ refund.verification_detail }}
{% endif %}
{% if refund.decision_status == "approved" and not refund.commit_attempted %}
{% endif %} {% if refund.commit_attempted and refund.verification_status in ["pending","failed"] and not refund.ambiguous %}
{% endif %} {% if refund.ambiguous %}
{% endif %} View Action Passport

Effect lifecycle

    {% for event in refund.timeline %}
  1. {{ event.event_type|replace('.',' · ') }}
    {{ event.decision }}{% if event.actor_id %} · {{ event.actor_id }}{% endif %}{% if event.from_state %} · {{ event.from_state }} → {{ event.to_state }}{% endif %}
  2. {% endfor %}
{% endblock %}