protected function _handleError($data, $ignore_declines = false)
	{
		if (!$data)
		{
			// Check for 401/other errors
			$info = $this->_last_httpinfo;

			if ($info['http_code'] == QuickBooks_HTTP::HTTP_401)
			{
				$this->_setError($info['http_code'], 'Unauthorized.');
				return true;
			}
			else if ($info['http_code'] == QuickBooks_HTTP::HTTP_404)
			{
				$this->_setError($info['http_code'], 'Not Found.');
				return true;
			}
			else if ($info['http_code'] == QuickBooks_HTTP::HTTP_500)
			{
				$this->_setError($info['http_code'], 'Internal Server Error.');
				return true;
			}
		}

		if (isset($data['errors']))
		{
			$err = array_merge(array(
				'code' => null,
				'message' => null,
				'type' => null,
				'detail' => null,
				'infoLink' => null,
				), $data['errors'][0]);

			$this->_setError($err['code'], $err['message'], $err['type'], $err['detail'], $err['infoLink']);

			return true;
		}

		if (!$ignore_declines)
		{
			if (isset($data['status']) and
				$data['status'] == self::STATUS_DECLINED)
			{
				$this->_setError(self::ERROR_DECLINE, 'This transaction was declined.');

				return true;
			}
		}

		return false;
	}