When using the debugger during a call with shippo.transaction.create({{PAYLOAD}}), the request seems to fire twice. The first time with a valid payload describing the response, and the second payload only contains { details: 'Permission Denied' }. This breaks a previous contract that says there will be a status field on the response object.
This code is contained in Method.js on line 79.
To recreate, simply add a breakpoint on this line and use the function call shippo.transactions.create() method to see the request fire twice.