Only server-provisioned course administrators can import vouchers. Codes are stored as hashes. Save your code list securely; the server cannot show the originals.
Create a batch
Review or import JSON
Each row: code, kind (full/percent/fixed), amount, access_months, max_uses, redeem_by (ISO UTC or null). An invalid or duplicate row rejects the entire batch.
Partial discounts never grant access while payment checkout is closed.