INSUFFICIENT_FUNDS | 402 | Workspace available balance is lower than total debit (amount + fee). | Top up workspace balance via M-Pesa or Bank transfer. |
POLICY_VIOLATION_DAILY_CAP | 403 | Cumulative 24-hour spend exceeds workspace spending policy. | Wait for rolling window reset or request policy adjustment from Admin. |
BENEFICIARY_NOT_ALLOWLISTED | 403 | The requested PayBill or phone number is not in the policy allowlist. | Add the shortcode/phone to your approved beneficiary registry. |
IDEMPOTENCY_CONFLICT | 409 | Reused an idempotency key with different amount or destination details. | Generate a fresh UUID Idempotency-Key for distinct payment requests. |
TELECOM_TIMEOUT | 504 | Safaricom/Bank network took > 30s to return status. | Do not re-debit. Intent remains in PROCESSING until background polling resolves. |