Expensify Component
Expensify provides an industry leading expense management system. Use the Expensify component to programmatically download expense report data for analysis or insertion into your accounting package, provision accounts for new hires, and much more.
Component key: ExpensifyDescription
Expensify provides an industry leading expense management system.
Use the Expensify component to programmatically download expense report data for analysis or insertion into your accounting package, provision accounts for new hires, and much more.
API Reference: Expensify API Reference
Connections
Basic Connection
Create a new authentication connection. Refer to the following guide for more information.
- Navigate to https://www.expensify.com/tools/integrations/ and select the option that creates a new set of credentials
- A pair of credentials:
partnerUserID
andpartnerUserSecret
will be generated and shown on the page.- Make sure to store the
partnerUserID
andpartnerUserSecret
pair you're given in a secure location, as you won't be shown them again.
- Make sure to store the
- Enter the
partnerUserID
andpartnerUserSecret
into the connection configuration of your Prismatic integration
Data Sources
List Cards
Returns all Cards. | key: listCards | type: picklist
List Policies
Returns all Policies. | key: listPolicies | type: picklist
Actions
Create Expense
Allows you to create expenses in a user’s account. | key: createExpense
{
"data": {
"responseCode": 200,
"transactionList": [
{
"amount": 1234,
"merchant": "Name Of Merchant 1",
"created": "2016-01-01",
"transactionID": "6720309558248016",
"currency": "USD"
},
{
"amount": 2211,
"merchant": "Name Of Merchant 2",
"created": "2016-01-31",
"transactionID": "6720309558248017",
"currency": "CAD"
}
]
}
}
Create Expense Rule
Create expense rules for a given employee on a given policy. | key: createExpenseRule
Create Policy
Creates a policy. | key: createPolicy
{
"data": {
"responseCode": 200,
"policyID": "0123456789ABCDEF",
"policyName": "My New Policy"
}
}
Create Report
Creates a report, with transactions, in a user’s account. | key: createReport
{
"data": {
"responseCode": 200,
"reportName": "Name of the report",
"reportID": "R006AseGxMka"
}
}
Download Report
This job lets you download reports that were generated with the Report Exporter job. | key: downloadReport
Export Report
Export expense or report data in a configurable format for analysis or insertion into your accounting package. | key: exportReport
{
"data": "exporteba3c95b-f302-4d74-a41a-6127c9088551-5650745444954548.pdf,exporteba3c95b-f302-4d74-a41a-6127c9088551-2050520975381833.pdf"
}
Get Policy
Gets specific information about listed policies. | key: getPolicy
{
"data": {
"responseCode": 200,
"policyInfo": {
"4C6722D4BD2BD941": {
"reportFields": [
{
"values": [],
"name": "title",
"type": "formula"
},
{
"values": [
"Class 1",
"Class 2",
"Class 2:Sub class 2"
],
"name": "Classes",
"type": "dropdown"
},
{
"values": [
"Donatello",
"Leonardo",
"Michelangelo",
"Rafael"
],
"name": "Customers/Jobs",
"type": "dropdown"
}
],
"categories": [
{
"name": "Entertainment",
"enabled": true
},
{
"name": "Transportation",
"enabled": true
},
{
"name": "Phone",
"enabled": true
},
{
"name": "Fuel/Mileage",
"enabled": true
},
{
"name": "Lodging",
"enabled": true
},
{
"name": "Meals",
"enabled": true
},
{
"name": "Other",
"enabled": false
}
],
"tags": [
{
"glCode": "",
"name": "Enterprise",
"enabled": true
},
{
"glCode": "",
"name": "Enterprise:Jean-Luc Picard",
"enabled": true
},
{
"glCode": "",
"name": "Enterprise:Lt. Commander Data",
"enabled": true
},
{
"glCode": "",
"name": "Enterprise:William Riker",
"enabled": true
}
],
"tax": {
"default": "4",
"rates": [
{
"rate": 0,
"name": "EC Goods Zero-rated",
"rateID": "5"
},
{
"rate": 0,
"name": "EC Services Standard",
"rateID": "4"
},
{
"rate": 20,
"name": "Standard",
"rateID": "2"
},
{
"rate": 5,
"name": "Reduced",
"rateID": "9"
}
],
"name": "Tax"
}
},
"3F329EA1C3809E6C": {
"categories": [
{
"name": "Phone Costs",
"areCommentsRequired": false,
"enabled": false
},
{
"name": "Legal",
"areCommentsRequired": false,
"enabled": false
},
{
"name": "Agency Expense",
"areCommentsRequired": false,
"enabled": false
}
],
"reportFields": [
{
"values": [],
"name": "title",
"type": "formula"
}
],
"tags": [
{
"name": "Tags",
"tags": []
}
],
"tax": {},
"employees": [
{
"email": "admin@domain.com",
"role": "admin",
"submitsTo": "user@domain.com"
},
{
"email": "user@domain.com",
"role": "user",
"submitsTo": "admin@domain.com",
"employeeID": "Emp1",
"customField2": "custom information"
}
]
}
}
}
}
List Cards
Gets the list of credit cards that are assigned at the domain level. | key: listCards
List Policies
Gets a list of policies with some relevant information about them. | key: listPolicies
{
"data": {
"policyList": [
{
"outputCurrency": "USD",
"owner": "admin@acmecorp.com",
"role": "user",
"name": "Acme Corp USA Policy",
"id": "DEADBEEF12345678",
"type": "corporate"
},
{
"outputCurrency": "EUR",
"owner": "admin@acmecorp.com",
"role": "auditor",
"name": "Acme Corp France Policy",
"id": "BA5EBA1187654321",
"type": "corporate"
},
{
"outputCurrency": "USD",
"owner": "hr@acmecorp.com",
"role": "admin",
"name": "ACME Corp Candidate Policy",
"id": "F005BA11000099999",
"type": "corporate"
}
],
"responseCode": 200
}
}
Raw Request
Send a raw HTTP request to the Expensify API | key: rawRequest
Update Employee
Add, update or remove policy members | key: updateEmployee
The advanced employee updater is designed to allow dynamic and customizable employee provisioning and de-provisioning in Expensify. It will allow you to:
- Provision employees into Expensify policies based on customizable fields, such as employee department, country, job code, etc.
- De-provision employees from Expensify, based on customizable fields, such as termination date
- Assign employees to Expensify domain groups based on customizable fields, such as employee department, country, job code, etc.
- Automatically invite managers to policies they have subordinates on
- Automatically detect employee email address changes, and merge both addresses into the same account
- Import additional information from the employee feed into Expensify, to reuse for custom data export
{
"data": {
"responseCode": 200,
"dry-run": false,
"updatedEmployeesCount": 3,
"diff": {
"diffToAdd": {
"0123456789ABCDEF": [
"employee1@domain.com",
"employee2@domain.com"
],
"ABCDEF0123456789": [
"employee3@domain.com"
]
},
"diffToRemove": {
"B1C7903C636F4A51": [
"terminatedEmployee@domain.com"
]
}
},
"securityGroupEmployeesMap": {
"407184": [
"employee1@domain.com",
"employee2@domain.com"
],
"830936": [
"employee3@domain.com"
]
},
"skippedEmployees": [
{
"email": "employee6@domain.com",
"reason": "No policy found for 'Marketing'"
},
{
"email": "employee7@domain.com",
"reason": "Invalid manager email address 'manager@domain '"
}
]
}
}
Update Expense Rules
Update a preexisting expense rule for a given employee on a given policy. | key: updateExpenseRule
Update Policy
manage categories, tags and report fields on a policy. | key: updatePolicy
Update Report Status
Update the status of a report. | key: updateReportStatus
{
"data": {
"responseCode": 200,
"reportIDs": [
"R006AseGxMka",
"R00bCluvcO4T"
]
}
}