/**
  *
  * @return AddOn[]
  */
 public function all()
 {
     $path = $this->_config->merchantPath() . '/add_ons';
     $response = $this->_http->get($path);
     $addOns = ["addOn" => $response['addOns']];
     return Util::extractAttributeAsArray($addOns, 'addOn');
 }
 /**
  *
  * @param string $settlement_date
  * @param string $groupByCustomField
  * @return SettlementBatchSummary|Result\Error
  */
 public function generate($settlement_date, $groupByCustomField = NULL)
 {
     $criteria = ['settlement_date' => $settlement_date];
     if (isset($groupByCustomField)) {
         $criteria['group_by_custom_field'] = $groupByCustomField;
     }
     $params = ['settlement_batch_summary' => $criteria];
     $path = $this->_config->merchantPath() . '/settlement_batch_summary';
     $response = $this->_http->post($path, $params);
     if (isset($groupByCustomField)) {
         $response['settlementBatchSummary']['records'] = $this->_underscoreCustomField($groupByCustomField, $response['settlementBatchSummary']['records']);
     }
     return $this->_verifyGatewayResponse($response);
 }