If you'd like to embed a skinned version of the Expensify application onto your website, the Expensify Web Service API will allow you to do just that.
What It Does
The whitelabel integration performs several key functions:
Seamless integration: Extend your website with Expensify functionality while maintaining your site's consistent style.
Single signon: Users sign in once, to your site; their Expensify account is silently created and authenticated without any additional prompts.
Scalable featureset: Take as much or as little Expensify functionality as you want. Just want to import credit cards? Great. Want to include everything? Even better. And talk to us for anywhere in between.
Constructing the Whitelabel URL
To use the whitelabel API, construct a URL with the following syntax:
https://<partnerName>.expensify.com/partnerSignin : the partner name you were assigned, minus ".com" (eg, "salesforce") ?email=<email> : The email address of the user signing in (eg, "firstname.lastname@example.org") &partnerUserID=<partnerUserID> : The ID by which you identify the user (eg, "email@example.com" or "dbarrett") &enterAt=<enterAt> : (optional) The URL to redirect the user to after authenticating (eg, "https://<partnername>.expensify.com/newbankform") &exitTo=<exitTo> : (optional) The URL to redirect the user to when done (eg, "http://yoursite.com") &sso=<sso> : A base64-encoded, encrypted SSO containing <partnerPassword> and <partnerUserSecret>.
Put this URL into a standard link, an IFRAME, or redirect the user's browser to it directly. (Please see the SSO documentation for an explanation of the SSO field.) An example of a well-formed URL is:
By default, the user will see the standard Expensify color scheme, known as the default skin. To create a custom skin (such as to match Expensify to your website's styles and colors), contact firstname.lastname@example.org and we can discuss your use case.
Whitelabel API Entry Points
We provide a series of entry points that indicate which Expensify workflow you would like us to present to the user.
If you do not specify enterAt in the request to /partnerSignin we will do our best to guess what interface to present to the user based on their current state. For example, if the account is new, we will prompt to import a credit card. If a report has been submitted to the user, we will present that. Otherwise, we'll present the interface to create a new account. Regardless, once in the user has full access to all Expensify functionality. When the default entry point is selected, exitTo is ignored.
This entry point prompts the user to import a credit card. Once complete, the cardID of the newly imported card is appended to the exitTo URL, and the browser is redirected to this. Use the newbankform entry point to add credit card importing to your service: we will import the user's credit card history and then immediately return control of the browser session to you.