API configuration: expensify


Auth (Basic)
Sync data
Perform workflows
Proxy requests
Receive webhooks🚫 (time to contribute: <48h)
We can implement missing features in <48h, just ask for it in the community.

Getting started

Need help getting started? Get help in the community.

API gotchas

  • Expensify in Nango uses Basic auth mode to access different endpoints. Provide your partnerUserID as the Username value and partnerUserSecret as the Password value.
  • After creating a connection, you can use the Basic credentials as follows;
const connection = await nango.getConnection();
let credentials: { partnerUserID?: string; partnerUserSecret?: string } = {};
        if ('username' in connection.credentials && 'password' in connection.credentials) {
            credentials = {
                partnerUserID: connection.credentials.username,
                partnerUserSecret: connection.credentials.password,
        } else {
            throw new nango.ActionError({
                message: `Basic API credentials are incomplete`
        const postData = 'requestJobDescription=' + encodeURIComponent(JSON.stringify({
            type: input.requestJobDescription.type,
            credentials: credentials,
            inputSettings: {
                type: input.inputSettings.type

        const resp = await nango.post({
            baseUrlOverride: `https://integrations.expensify.com/Integration-Server`,
            endpoint: `/ExpensifyIntegrations`,
            headers: {
                'Content-Type': 'application/x-www-form-urlencoded',
            data: postData,
  • You can have a look at the following simple action template
  • Every request has to be made against the same endpoint.
  • Expensify enforces a general rate limit of 50 jobs started per minute.
Add Getting Started links and Gotchas by editing this page