code: func (c *Client) do(req *http.Request, v interface{}) error {
  	res, err := c.httpClient.Do(req)
  
  	if err != nil {
  		return err
  	}
  	defer res.Body.Close()
  
  	resBody, err := ioutil.ReadAll(res.Body)
  	if err != nil {
  		return err
  	}
  
  	// Successful response
  	if res.StatusCode == 200 {
  		return json.Unmarshal(resBody, v)
  	}
  
  	// Attempt to unmarshal into Plaid error format
  	var plaidErr Error
  	if err = json.Unmarshal(resBody, &plaidErr); err != nil {
  		return err
  	}
  	plaidErr.StatusCode = res.StatusCode
  	return plaidErr
  }
docs: // do is used by Call to execute an http.Request and parse its response.
  // Also handles parsing of the plaid error format.