code: protected function callOperationAsync($name, \DTS\eBaySDK\Types\BaseType $request, $responseClass)
      {
          $url = $this->getUrl();
          $body = $this->buildRequestBody($request);
          $headers = $this->buildRequestHeaders($name, $request, $body);
          $debug = $this->getConfig('debug');
          $httpHandler = $this->getConfig('httpHandler');
          $httpOptions = $this->getConfig('httpOptions');
  
          if ($debug !== false) {
              $this->debugRequest($url, $headers, $body);
          }
  
          $request = new Request('POST', $url, $headers, $body);
  
          return $httpHandler($request, $httpOptions)->then(
              function (ResponseInterface $res) use ($debug, $responseClass) {
                  list($xmlResponse, $attachment) = $this->extractXml($res->getBody()->getContents());
  
                  if ($debug !== false) {
                      $this->debugResponse($xmlResponse);
                  }
  
                  $xmlParser = new XmlParser($responseClass);
  
                  $response = $xmlParser->parse($xmlResponse);
                  $response->attachment($attachment);
  
                  return $response;
              }
          );
      }
docs: Sends an asynchronous API request.
  
  @param string $name The name of the operation.
  @param \DTS\eBaySDK\Types\BaseType $request Request object containing the request information.
  @param string $responseClass The name of the PHP class that will be created from the XML response.
  
  @return \GuzzleHttp\Promise\PromiseInterface A promise that will be resolved with an object created from the XML response.