public function send()
    {
        try {
            return $this->sendData($this->getData());
        } catch (GoCardlessProException $e) {
            if ($e->getMessage() == 'Rate limit exceeded') {
                sleep($this->sleepTimeout);
                try {
                    return $this->sendData($this->getData());
                } catch (GoCardlessProException $f) {
                    $e = $f;
                }
            }
            $response = new ErrorResponse($this, $e);

            return $response;
        } catch (\Exception $e) {
            $response = new ErrorResponse($this, $e);

            return $response;
        }
    }