<head> <title>Billing</title> </head> <body> <h1>Billing</h1> <ul> <li>You can bill individual customers by clicking on the <i>Bill now</i> link on the main customer view. <li>The <a href="man/bin/freeside-daily.html"><b>freeside-daily</b></a> script should be run daily to bill customers and run invoice collection events. <li>Real-time credit card processing: Install the <a href="http://search.cpan.org/search?mode=module&query=Business%3A%3AOnlinePayment">Business::OnlinePayment</a> module for your processor. Configure the <a href="../config/config-view.cgi#business-onlinepayment">business-onlinepayment</a> configuration option. Disable the default <b>Batch card</b> <a href="../browse/part_bill_event.cgi">invoice event</a> and add one for Business::OnlinePayment. <li>Optional: Invoice template customization <ul> <li>See the <a href="http://search.cpan.org/doc/MJD/Text-Template-1.42/Template.pm">Text::Template</a> documentation for details on the substitution language. <li>You <b>must</b> call the invoice_lines() function at least once - pass it a number of lines, and it returns a list of array references, each of two elements: a service description column, and a price column. <li>In addition, the following variables are available: <ul> <li>$invnum - invoice number <li>$date - as a UNIX timestamp (see <a href="http://search.cpan.org/doc/GBARR/TimeDate-1.09/lib/Date/Format.pm">Date::Format</a> for conversion functions). <li>$page - current page <li>$total_pages - total pages <li>@address - A six-element array containing the customer name, company, and address. <li>$overdue - true if this invoice is overdue </ul> </ul> <li>Batch credit card processing <ul> <li>After <a href="man/bin/freeside-daily.html"><b>freeside-daily</b></a> is run, a credit card batch will be in the <a href="schema.html#cust_pay_batch">cust_pay_batch</a> table. Export this table to your credit card batching. <li>When your batch completes, erase the cust_pay_batch records in that batch and add any necessary paymants to the <a href="schema.html#cust_pay">cust_pay</a> table. Example code to add payments is: <pre>use FS::cust_pay; # loop over all records in batch my $payment=create FS::cust_pay ( 'invnum' => $invnum, 'paid' => $paid, '_date' => $_date, 'payby' => $payby, 'payinfo' => $payinfo, 'paybatch' => $paybatch, ); my $error=$payment->insert; if ( $error ) { #process error } # end loop </pre> All fields except paybatch are contained in the cust_pay_batch table. You can use paybatch field to track particular batches and/or particular transactions within a batch. </ul> <li>The <a href="man/bin/freeside-print-batch.html"><b>freeside-print-batch</b></a> script can print or email pending credit card batches for manual entry. </ul> </body>