public function executeDebit($id_cart, $amount = NULL, $close_flag = 1)
 {
     $disposition = PSCDisposition::getByCartId((int) $id_cart);
     if (!array_key_exists('id_disposition', $disposition)) {
         die(Tools::displayError());
     }
     if (!isset($amount) || $amount === '') {
         $amount = $disposition['amount'];
     }
     $result = PSCPrepaidServicesAPI::executeDebit($this->getAPIConfiguration($disposition['currency']), Configuration::get($this->prefix . 'MERCHANT_ID_' . $disposition['currency']), $disposition['mtid'], number_format($amount, 2, '.', ''), $disposition['currency'], $close_flag);
     if ($result[0] == 0) {
         if ($amount == $disposition['amount'] || $close_flag) {
             PSCDisposition::delete((int) $disposition['id_disposition']);
         } else {
             PSCDisposition::updateAmount((int) $disposition['id_disposition'], (double) $amount);
         }
     }
     return $result;
 }