The Moss API gives your organisation direct, programmable access to Moss data. It is typically used by IT teams, data teams, or implementation partners to connect Moss with other systems, automate workflows, and build custom reporting.
This article explains:
What data is available?
The API provides access to core data that finance teams work with every day. This includes transactional data, accounting reference data, and organisational data.
You can review the full Moss Data Model and API reference in the API documentation.
Data | Description |
Expenses | All card transactions, invoices, and reimbursements, including line-item detail, amounts, VAT, status, accounting dimensions, and export history |
Suppliers | Supplier names, banking details, default accounting settings, and addresses. You can also create and update suppliers via the API |
Chart of accounts | Your expense account codes and names, as configured in Moss |
Tax rates | All tax rate codes, rates, and country assignments |
Cost centres and dimensions | Your cost centres, cost carriers, and any custom accounting dimensions with their values |
Teams and departments | Your organisational structure as set up in Moss |
Users | Employee names, emails, and roles |
Bank transactions | Money movements in your Moss wallets, including balance movements |
What can you do with the Moss API
Customers use the Moss API to build workflows and reporting that go beyond standard exports.
Common use cases include:
Custom financial reporting and insights
Replace manual CSV exports with live dashboards that combine Moss data with other business data.
For example:
Create a rolling cash forecast by pulling pending payment data across all entities and visualising it in your BI tool (e.g. Google BigQuery, Looker Studio, or Metabase)
Analyse your spend across entities with a comprehensive view
How often can the API pull data?
The API supports near-real-time access. Your integration can request updated data as frequently as needed within the published rate limits. Many organisations choose to sync on a schedule, often daily, depending on their requirements
Key Endpoints
Data | Endpoint | Description |
Expenses | GET /v1/expenses | Card transactions, invoices, and reimbursements with full accounting detail (amounts, expense accounts, tax rates, dimensions, statuses) |
Chart of accounts
| GET /v1/expense-accounts | Chart of accounts — the ledger accounts expenses are posted to |
Cost centres and dimensions | GET /v1/dimensions | Accounting dimensions (cost centres, cost carriers, custom dimensions) |
Cost centres and dimensions | GET /v1/dimension-items | Values within a dimension (e.g., individual cost centres or project codes) |
Teams | GET /v1/teams | Teams — useful for grouping spend by team |
Departments | GET /v1/departments | Departments — useful for higher-level aggregation |
Suppliers | GET /v1/suppliers | Supplier master data — useful for spend-by-vendor analysis |
Users | GET /v1/users | Users — useful for attributing spend to individuals |
You can review the full use case in the API documentation here.
Project and Job Management Integrations
Service businesses (e.g. agencies, consultancies, construction firms), often need to track spend against client projects or jobs. The API allows you to sync project structures into Moss and retrieve enriched expense data for downstream reporting.
For example:
Create a corresponding dimension item in Moss via API when a new project is created in your project management tool. This keeps project lists synchronised without manual data entry
Retrieve expenses tagged with project codes and load them into your data warehouse to build per-project profit-and-loss views
Retrieve project or client codes from expenses in Moss and generate accurate client invoices based on actual costs incurred
Key Endpoints
Data | Endpoint | Description |
Cost centres and dimensions | POST /v1/dimension-items | Create a new dimension value (e.g., a project code) |
Cost centres and dimensions | PATCH /v1/dimension-items/{id} | Update or deactivate a dimension item |
Expenses | GET /v1/expenses | Retrieve expenses with their dimension values to determine which project each expense belongs to |
Cost centres and dimensions | GET /v1/dimensions | List available dimensions to identify the one representing projects |
Cost centres and dimensions | GET /v1/dimension-items | List all values within a given dimension |
Review the full use case in the API documentation here.
Accounting Software Integrations
If your ERP or accounting software is not natively supported by Moss, you can use the API to build a custom data sync.
For example:
Retrieve approved expenses from Moss and transform them into journal entries in your ERP. Each expense includes the expense account, tax rate, dimensions, and supplier required for a complete posting
Push supplier lists and dimension items from your ERP into Moss to keep expense coding consistent with your accounting system
Maintain supplier data across both systems. When a vendor is created or updated in either Moss or your ERP, propagate the change to the other
Key Endpoints
Data | Endpoint | Description |
Expenses | GET /v1/expenses | Expenses with full accounting detail for creating journal entries |
Expenses | GET /v1/expense-accounts | Ledger account mappings |
Tax rates | GET /v1/tax-rates | Tax and VAT rates for correct tax treatment |
Suppliers | GET /v1/suppliers | Supplier data including addresses and payment terms |
Files | POST /v1/files/search-query | Search for files (receipts, invoices) attached to expenses |
Files | GET /v1/files/{fileId}/content | Download file content |
Cost centres and dimensions | GET /v1/dimension-items | Dimension items mappings in Moss (cost centre, project, etc.) |
Suppliers | POST /v1/suppliers | Create a new supplier |
Suppliers | PATCH /v1/suppliers/{id} | Update an existing supplier |
Cost centres and dimensions | POST /v1/dimensions | Create a new dimension |
Cost centres and dimensions | POST /v1/dimension-items | Create a new dimension item (cost centre, project, etc.) |
Review the full use case in the API documentation here.
Document Retrieval and Archiving
Retrieve receipts, invoices, and other documents attached to expenses for archiving, compliance, or automated processing.
For example:
Pull receipts and invoices from Moss into a document management system with full metadata linking each document to its source transaction
Programmatically retrieve document samples for external auditors, replacing manual collection
Feed invoice PDFs to an LLM for data extraction, compliance validation, or duplicate detection
Key Endpoints
Data | Endpoint | Description |
Files | POST /v1/files/search-query | Search for files attached to expenses |
Files | GET /v1/files/{fileId}/content | Download file content (PDF, image) |
Expenses | GET /v1/expenses | Expense data including file references at each line item |
Review the full use case in the API documentation here.
How to get started
The API is usually used by your IT team or data team. Getting started normally follows four steps.
1. Decide what you need
Start by defining which systems should receive Moss data and what data those systems need. This helps you decide what kind of integration you want to build and which endpoints your team will need to use.
2. Involve your IT team or integration partner
Share your requirements with your IT team, data team, or implementation partner. They should also review the Moss API documentation, which contains the information needed to build the connection.
If you don’t have an IT team or integration partner available, there are other ways you can export data from Moss. Learn more about export methods here.
3. Request API credentials
Your Moss admin can generate API credentials in Moss settings. These credentials are what your IT team will use to connect.
To create API keys, complete the following:
Log in to your Moss account as an admin
Navigate to Settings → Company Settings → API Keys
Click "Generate API Key"
Confirm the operation with Moss mobile app
Save both the Key ID (kid_) and Secret Key (sk_) securely
Important: Store credentials securely and never expose them in client-side code.
For more information on obtaining and using access tokens, visit our API documentation here.
4. Test and go live
Your IT team builds and tests the integration, then enables it for production use.
Security and access control
The Moss API is designed to give your organisation secure, controlled access to your Moss data.
Key security measures include:
Authenticated access only: Every API connection requires secure credentials that are unique to your organisation.
Separate API credentials: API connections use their own credentials, separate from employee login details. No employee passwords are shared.
Rate limits: The API enforces request limits to help prevent misuse and support reliable performance.
Auditable activity: API updates are logged and traceable.
Is data shared with third parties?
No. The API provides access only to your own organisation’s data, only to applications you explicitly authorise with your credentials. Moss does not share your data with any third party through the API.
