How do you know when the system is down for maintenance?
Our recent unscheduled downtime raised an interesting question. How can API developers tell that the application is down? Users of the web interface see a handy HTML page describing the situation to them, but applications written against our API are not built to read human.
We are now sending a HTTP 503: Service Unavailable with this page. If your code sees this status response from the FreshBooks API, it will know to try again in, say, 30 minutes. Furthermore, you will be able to provide reasonable error messages to your own end users about the cause of FreshBooks synchronization failures.