Hey Ethan,
Q2 does have a set of Q2Api endpoints that can be used to generate a SAC code and send it to the end user.
https://docs.q2developer.com/api_references/hq_api/q2_api/GetEndUserAccessCodeTargets.html -- Get a list of targets to send the access code to
https://docs.q2developer.com/api_references/hq_api/q2_api/CreateEdvSecureAccessCode.html - Generate the SAC code and send the code
https://docs.q2developer.com/api_references/hq_api/q2_api/ValidateEdvSecureAccessCode.html - Validate the code that was submitted by the end user
Please note that the delivery method of Voice probably won't work in the sandbox, but should work in a Q2 PTE environment.