I haven't done this, but it sounds fairly simple to accomplish...
I would route the outbound calls to an IVR to prompt for the PIN. Next, I'd use the 'Send Call Values to URL' IVR option to send the data to an external system. Once there, I'd verify the PIN then store the call time, number dialed, and PIN in a database, then return a code to the IVR as acceptance of the PIN. Back in the Switchvox IVR, once accepted, proceed to process call.
In a separate process, I'd periodically query Switchvox for CDR data, and cross reference the stored timestamp / number dialed with the CDR records to tie it all together and produce reports.
There are a couple of call processing details I skipped (outbound call rules to direct calls to the IVR and then outbound call rules that only the IVR has access to), but I think this should point you in the right direction.