|
|
| Line 1: |
Line 1: |
| − | ==NAME==
| |
| − | FS::API - Freeside backend API
| |
| | | | |
| − | ==SYNOPSIS==
| |
| − | <code>
| |
| − | use FS::API;
| |
| − | </code>
| |
| − | ==DESCRIPTION==
| |
| − | This module implements a backend API for advanced back-office integration.
| |
| − |
| |
| − | In contrast to the self-service API, which authenticates an end-user and offers functionality to that end user, the backend API performs a simple shared-secret authentication and offers full, administrator functionality, enabling integration with other back-office systems.
| |
| − |
| |
| − | If accessing this API remotely with XML-RPC or JSON-RPC, be careful to block the port by default, only allow access from back-office servers with the same security precations as the Freeside server, and encrypt the communication channel (for exampple, with an SSH tunnel or VPN) rather than accessing it in plaintext.
| |
| − |
| |
| − | ==METHODS==
| |
| − | ; insert_payment
| |
| − | :Adds a new payment to a customers account. Takes a hash reference as parameter with the following keys:
| |
| − | :; secret
| |
| − | ::API Secret
| |
| − | :; custnum
| |
| − | ::Customer number
| |
| − | :; payby
| |
| − | ::Payment type
| |
| − | :; paid
| |
| − | ::Amount paid
| |
| − | :; _date
| |
| − | ::Option date for payment
| |
| − |
| |
| − | ::Example:
| |
| − | <code>
| |
| − | my $result = FS::API->insert_payment(
| |
| − | 'secret' => 'sharingiscaring',
| |
| − | 'custnum' => 181318,
| |
| − | 'payby' => 'CASH',
| |
| − | 'paid' => '54.32',
| |
| − |
| |
| − | #optional
| |
| − | '_date' => 1397977200, #UNIX timestamp
| |
| − | );
| |
| − |
| |
| − | if ( $result->{'error'} ) {
| |
| − | die $result->{'error'};
| |
| − | } else {
| |
| − | #payment was inserted
| |
| − | print "paynum ". $result->{'paynum'};
| |
| − | }
| |
| − | </code>
| |
| − | ; insert_credit
| |
| − | :Adds a a credit to a customers account. Takes a hash reference as parameter with the following keys
| |
| − | :; secret
| |
| − | ::API Secret
| |
| − | :; custnum
| |
| − | ::customer number
| |
| − | :; amount
| |
| − | ::Amount of the credit
| |
| − | :; _date
| |
| − | ::The date the credit will be posted
| |
| − |
| |
| − | ::Example:
| |
| − | <code>
| |
| − | my $result = FS::API->insert_credit(
| |
| − | 'secret' => 'sharingiscaring',
| |
| − | 'custnum' => 181318,
| |
| − | 'amount' => '54.32',
| |
| − |
| |
| − | #optional
| |
| − | '_date' => 1397977200, #UNIX timestamp
| |
| − | );
| |
| − |
| |
| − | if ( $result->{'error'} ) {
| |
| − | die $result->{'error'};
| |
| − | } else {
| |
| − | #credit was inserted
| |
| − | print "crednum ". $result->{'crednum'};
| |
| − | }
| |
| − | </code>
| |
| − | ; insert_refund
| |
| − | :Adds a a credit to a customers account. Takes a hash reference as parameter with the following keys: custnum,payby,refund
| |
| − |
| |
| − | :Example:
| |
| − | <code>
| |
| − | my $result = FS::API->insert_refund(
| |
| − | 'secret' => 'sharingiscaring',
| |
| − | 'custnum' => 181318,
| |
| − | 'payby' => 'CASH',
| |
| − | 'refund' => '54.32',
| |
| − |
| |
| − | #optional
| |
| − | '_date' => 1397977200, #UNIX timestamp
| |
| − | );
| |
| − |
| |
| − | if ( $result->{'error'} ) {
| |
| − | die $result->{'error'};
| |
| − | } else {
| |
| − | #refund was inserted
| |
| − | print "refundnum ". $result->{'crednum'};
| |
| − | }
| |
| − | </code>
| |
| − | ; new_customer
| |
| − | :Creates a new customer. Takes a hash reference as parameter with the following keys:
| |
| − | :; secret
| |
| − | ::API Secret
| |
| − | :; first
| |
| − | ::first name (required)
| |
| − | :; last
| |
| − | ::last name (required)
| |
| − | :; ss
| |
| − | ::(not typically collected; mostly used for ACH transactions)
| |
| − | :; company
| |
| − | ::Company name
| |
| − | :; address1 (required)
| |
| − | ::Address line one
| |
| − | :; city (required)
| |
| − | ::City
| |
| − | :; county
| |
| − | ::County
| |
| − | :; state (required)
| |
| − | ::State
| |
| − | :; zip (required)
| |
| − | ::Zip or postal code
| |
| − | :; country
| |
| − | ::2 Digit Country Code
| |
| − | :; latitude
| |
| − | ::latitude
| |
| − | :; Longitude
| |
| − | ::longitude
| |
| − | :; geocode
| |
| − | ::Currently used for third party tax vendor lookups
| |
| − | :; censustract
| |
| − | ::Used for determining FCC 477 reporting
| |
| − | :; censusyear
| |
| − | ::Used for determining FCC 477 reporting
| |
| − | :; daytime
| |
| − | ::Daytime phone number
| |
| − | :; night
| |
| − | ::Evening phone number
| |
| − | :; fax
| |
| − | ::Fax number
| |
| − | :; mobile
| |
| − | ::Mobile number
| |
| − | :; invoicing_list
| |
| − | ::comma-separated list of email addresses for email invoices. The special value 'POST' is used to designate postal invoicing (it may be specified alone or in addition to email addresses), postal_invoicing Set to 1 to enable postal invoicing
| |
| − | :; payby
| |
| − | ::CARD, DCRD, CHEK, DCHK, LECB, BILL, COMP or PREPAY
| |
| − | :; payinfo
| |
| − | ::Card number for CARD/DCRD, account_number@aba_number for CHEK/DCHK, prepaid "pin" for PREPAY, purchase order number for BILL
| |
| − | :; paycvv
| |
| − | ::Credit card CVV2 number (1.5+ or 1.4.2 with CVV schema patch)
| |
| − | :; paydate
| |
| − | ::Expiration date for CARD/DCRD
| |
| − | :; payname
| |
| − | ::Exact name on credit card for CARD/DCRD, bank name for CHEK/DCHK
| |
| − | :; referral_custnum
| |
| − | ::referring customer number
| |
| − | :; agentnum
| |
| − | ::Agent number
| |
| − | :; agent_custid
| |
| − | ::Agent specific customer number
| |
| − | :; referral_custnum
| |
| − | ::Referring customer number
| |
| − | ; customer_info
| |
| − | :Returns general customer information. Takes a hash reference as parameter with the following keys: custnum and API secret
| |
| − | ; location_info
| |
| − | :Returns location specific information for the customer. Takes a hash reference as parameter with the following keys: custnum,secret
| |