mrisoftware · v1.0.0 · 2026-04-19 · sha256 814b720850c07a0d
mrisoftware v1.0.0A
Immutable. This exact content never changes and is served at /api/v1/blob/814b720850c07a0d.
---
name: mrisoftware
description: |
MRI Software integration via Apideck's Accounting unified API — same methods work across every connector in Accounting, switch by changing `serviceId`. Use when the user wants to read, write, or reconcile invoices, bills, payments, ledger accounts, and journal entries in MRI Software. Routes through Apideck with serviceId "mrisoftware".
license: Apache-2.0
alwaysApply: false
metadata:
author: apideck
version: "1.0.0"
serviceId: mrisoftware
unifiedApis: ["accounting"]
authType: basic
tier: "1a"
verified: true
status: beta
---
# MRI Software (via Apideck)
Access MRI Software through Apideck's **Accounting** unified API — one of 34 Accounting connectors that share the same method surface. Code you write here ports to Access Financials, Acumatica, banqUP and 30 other Accounting connectors by changing a single `serviceId` string. Apideck handles auth, pagination, rate limiting, and retries so you don't write per-tenant MRI Software plumbing.
> **Beta connector.** MRI Software is currently in beta on Apideck. Expect partial resource coverage and occasional mapping gaps. Always verify coverage (see below) and fall back to the Proxy API for unsupported operations.
## Quick facts
- **Apideck serviceId:** `mrisoftware`
- **Unified API:** Accounting
- **Auth type:** basic
- **Status:** beta
- **MRI Software docs:** https://www.mrisoftware.com
- **Homepage:** https://www.mrisoftware.com/
## When to use this skill
Activate this skill when the user explicitly wants to work with **MRI Software** — for example, "create an invoice in MRI Software" or "reconcile payments in MRI Software". This skill teaches the agent:
1. Which Apideck unified API covers MRI Software (Accounting)
2. The correct `serviceId` to pass on every call (`mrisoftware`)
3. MRI Software-specific auth and coverage caveats
For the full method surface (parameters, pagination, filtering), use your language SDK skill:
- [`apideck-node`](../../skills/apideck-node/), [`apideck-python`](../../skills/apideck-python/), [`apideck-dotnet`](../../skills/apideck-dotnet/), [`apideck-java`](../../skills/apideck-java/), [`apideck-go`](../../skills/apideck-go/), [`apideck-php`](../../skills/apideck-php/), or [`apideck-rest`](../../skills/apideck-rest/)
For the raw OpenAPI spec:
- **Accounting:** [https://specs.apideck.com/accounting.yml](https://specs.apideck.com/accounting.yml) · [API Explorer](https://developers.apideck.com/api-explorer?id=accounting)
## Minimal example (TypeScript)
```typescript
import { Apideck } from "@apideck/unify";
const apideck = new Apideck({
apiKey: process.env.APIDECK_API_KEY,
appId: process.env.APIDECK_APP_ID,
consumerId: "your-consumer-id",
});
// List invoices in MRI Software
const { data } = await apideck.accounting.invoices.list({
serviceId: "mrisoftware",
});
```
## Portable across 34 Accounting connectors
The Apideck **Accounting** unified API exposes the same methods for every connector in its catalog. Switching from MRI Software to another Accounting connector is a one-string change — no rewrite, no new SDK.
```typescript
// Today — MRI Software
await apideck.accounting.invoices.list({ serviceId: "mrisoftware" });
// Tomorrow — same code, different connector
await apideck.accounting.invoices.list({ serviceId: "access-financials" });
await apideck.accounting.invoices.list({ serviceId: "acumatica" });
```
This is the compounding advantage of using Apideck over integrating MRI Software directly: code against the unified Accounting API once, gain access to every connector in it. New connectors Apideck adds become available to your app without code changes.
## MRI Software via Apideck Accounting
MRI Software is an enterprise real-estate management platform (property management + accounting). Apideck coverage targets the accounting surface within MRI's financial modules.
### Entity mapping
| MRI entity | Apideck Accounting resource |
|---|---|
| Journal Entry | `journal-entries` |
| Tenant / Receivable | `customers` |
| Vendor | `suppliers` |
| Account | `ledger-accounts` |
| Department | `departments` |
| Location / Property | `locations` |
| Purchase Order | `purchase-orders` |
| Tax | `tax-rates` |
| Bill | `bills` |
| Entity / Portfolio | `subsidiaries` |
### Coverage highlights
- ✅ Journal entries (general ledger)
- ✅ Customers (tenants), suppliers (vendors)
- ✅ Chart of accounts
- ✅ Purchase orders
- ✅ Multi-entity / multi-property via departments, locations, subsidiaries
- ❌ Invoices in the unified sense — MRI uses tenant billing workflows; use Proxy for invoice-like records
- ❌ Lease management, property records — separate MRI module surfaces
- ❌ MRI-specific reporting tools — use Proxy
### Auth notes
- **Type:** Basic auth (MRI API username + password), managed by Apideck Vault
- **Client binding:** MRI installations are per-client; one connection per client ID.
- **Version / product variant:** MRI has many product lines (Commercial Management, Residential Management, AnyBUILD). Confirm which API surface the user has access to.
- **Enterprise-only:** MRI is typically sold to large real-estate organizations — integration setup requires coordination with MRI admin staff.
### Example: list journal entries for a property
```typescript
const { data } = await apideck.accounting.journalEntries.list({
serviceId: "mrisoftware",
filter: { location_id: "property_xyz" },
});
```
## Escape hatch: Proxy API
When an endpoint isn't covered by the Accounting unified API, use Apideck's Proxy to call MRI Software directly — Apideck injects auth headers and handles token refresh. Set `x-apideck-downstream-url` to the target endpoint on MRI Software's own API:
```bash
curl 'https://unify.apideck.com/proxy' \
-H "Authorization: Bearer ${APIDECK_API_KEY}" \
-H "x-apideck-app-id: ${APIDECK_APP_ID}" \
-H "x-apideck-consumer-id: ${CONSUMER_ID}" \
-H "x-apideck-service-id: mrisoftware" \
-H "x-apideck-downstream-url: <target endpoint on MRI Software>" \
-H "x-apideck-downstream-method: GET"
```
See [MRI Software's API docs](https://www.mrisoftware.com) for available endpoints.
## Sibling connectors
Other **Accounting** connectors that share this unified API surface (same method signatures, just change `serviceId`):
[`access-financials`](../access-financials/) *(beta)*, [`acumatica`](../acumatica/) *(beta)*, [`banqup`](../banqup/) *(beta)*, [`campfire`](../campfire/) *(beta)*, [`clearbooks-uk`](../clearbooks-uk/) *(beta)*, [`digits`](../digits/) *(beta)*, [`dualentry`](../dualentry/), [`exact-online`](../exact-online/), and 25 more.
## See also
- [Accounting OpenAPI spec](https://specs.apideck.com/accounting.yml) · [API Explorer](https://developers.apideck.com/api-explorer?id=accounting)
- [`apideck-connector-coverage`](../../skills/apideck-connector-coverage/) — programmatic coverage checks
- [`apideck-best-practices`](../../skills/apideck-best-practices/) — architecture, Vault, pagination, error handling
- [`apideck-node`](../../skills/apideck-node/) — TypeScript / Node SDK patterns
- [MRI Software official docs](https://www.mrisoftware.com)