code: def _requests_post(self, url,
                         json=None,
                         data=None,
                         username="",
                         password="",
                         xapikey="",
                         headers=None,
                         timeout=30):
          
          if headers is None:
              headers = {}
  
          # Adding basic auth if username and password provided.
          auth = None
          if username and password:
              auth = requests.auth.HTTPBasicAuth(username, password)
          elif xapikey:
              headers['x-api-key'] = xapikey
  
          # Add User-Agent header to request so that the request
          # can be identified as coming from the Adyen Python library.
          headers['User-Agent'] = self.user_agent
  
          request = requests.post(url, auth=auth, data=data, json=json,
                                  headers=headers, timeout=timeout)
  
          # Ensure either json or data is returned for raw request
          # Updated: Only return regular dict,
          # don't switch out formats if this is not important.
          message = json
  
          return request.text, message, request.status_code, request.headers
docs: This function will POST to the url endpoint using requests.
          Returning an AdyenResult object on 200 HTTP response.
          Either json or data has to be provided.
          If username and password are provided, basic auth will be used.
  
  
          Args:
              url (str): url to send the POST
              json (dict, optional): Dict of the JSON to POST
              data (dict, optional): Dict, presumed flat structure of key/value
                  of request to place
              username (str, optionl): Username for basic auth. Must be included
                  as part of password.
              password (str, optional): Password for basic auth. Must be included
                  as part of username.
              headers (dict, optional): Key/Value pairs of headers to include
              timeout (int, optional): Default 30. Timeout for the request.
  
          Returns:
              str:    Raw response received
              str:    Raw request placed
              int:    HTTP status code, eg 200,404,401
              dict:   Key/Value pairs of the headers received.