'That invoice no longer exists.'])); } $client_id = intval($invoice['client_id']); enforceClientAccess(); $state = invoiceState($invoice, invoicePaid($invoice_id)); if (!invoiceCanPay($invoice, $state)) { exit(json_encode(['error' => billingNumber('invoice', $invoice) . ' has nothing owed on it - it is ' . strtolower($invoice['invoice_status']) . '.'])); } $contact_email = (string) mysqli_fetch_row(mysqli_query($mysqli, "SELECT contact_email FROM contacts WHERE contact_client_id = $client_id AND contact_primary = 1 AND contact_archived_at IS NULL LIMIT 1"))[0]; $pay = [ 'id' => 'payForm' . $invoice_id, 'amount' => $state['balance'], 'owed' => $state['balance'], 'currency' => $invoice['invoice_currency_code'], 'email' => $contact_email, ]; ob_start(); ?>