Deterministic orderId from the caller's idempotencyKey — PayZen has no
idempotency mechanism, so replays at least converge on the same order and
stay reconcilable via Order/Get. Keys already inside PayZen's charset
(ASCII, ≤64 chars with the pf- prefix) map 1:1; anything else keeps a
readable prefix plus a SHA-256 fragment so distinct keys can never collide
after sanitization.
Deterministic orderId from the caller's idempotencyKey — PayZen has no idempotency mechanism, so replays at least converge on the same order and stay reconcilable via Order/Get. Keys already inside PayZen's charset (ASCII, ≤64 chars with the pf- prefix) map 1:1; anything else keeps a readable prefix plus a SHA-256 fragment so distinct keys can never collide after sanitization.