---
title: "List accounting mappings"
method: GET
path: "/v2/accounting/mappings"
---

# List accounting mappings

`GET /v2/accounting/mappings`

## Request

- Base URL: `https://api.slash.com`
- URL: `https://api.slash.com/v2/accounting/mappings`
- Auth: API key in header `X-API-Key`

List the mappings that code entries automatically, including the ones the accounting intelligence agent created. On platforms that keep account mappings per subsidiary, such as NetSuite, the `account` mappings of `account` and `accounts_payable` sources listed are the default subsidiary's.

## Query parameters

- `connectionId` string
- `cursor` string
- `limit` integer
- `sourceType` 'account' | 'virtual_account' | 'card' | 'card_group' | 'merchant' | 'merchant_category' | 'recipient' | 'accounts_payable'
- `sourceId` string
- `dimensionKey` string

## Response `200`

A page of mappings, oldest first.

- object
  - `items` AccountingMapping[], required
    - `id` string, required: Mapping id with the `accounting_mapping_` prefix.
    - `connectionId` string, required: The connection the mapping belongs to.
    - `source` AccountingMappingSource, required: What a mapping keys on.
      - `type` 'account' | 'virtual_account' | 'card' | 'card_group' | 'merchant' | 'merchant_category' | 'recipient' | 'accounts_payable', required: Which resource `id` names. `account` is an Account (`sa_group_`) and sets the cash-side account of its transactions; `virtual_account` (`subaccount_`), `card` (`c_`), `card_group` (`card_group_`), `merchant` (`merchant_v2_`, from a card transaction's `details.merchant.id`), `merchant_category` (`merchant_category_`, from a card transaction's `details.merchant.categoryId`) and `recipient` (the recipient of a transfer) code the expense side of matching transactions; `accounts_payable` takes no `id` and sets the accounts payable account bills are posted to. When several rules reach the same dimension of one transaction the more specific source wins, from weakest to strongest: `virtual_account`, `card_group`, `card`, `merchant_category`, `merchant`, `recipient`.
      - `id` string: The id of that resource. Required for every type except `accounts_payable`.
    - `dimensionKey` string, required: The dimension this mapping codes, a `key` from `GET /v2/accounting/dimensions`.
    - `valueId` string: The dimension value applied, from `GET /v2/accounting/dimensions/{dimensionKey}/values`. Absent on custom-field mappings, which carry `customFieldValue` instead.
    - `customFieldValue` union: The custom field value applied, present only when `dimensionKey` is a `custom_field` dimension. Its shape follows the field's `fieldType`: an option value for `select`, a list of option values for `multiselect`, otherwise a boolean, string or number.
      - string
      - number
      - boolean
      - string[]
    - `createdBy` 'user' | 'ai': `user` for mappings written by people or the API, `ai` for mappings the accounting intelligence agent proposed and applied.
    - `createdAt` string, date-time, required
  - `metadata` PaginationMetadata, required
    - `nextCursor` string: Opaque cursor for the next page. Omitted on the final page.
    - `count` integer, required: Number of items in this page.

## Other responses

- `400`: - `connection_id_required` — The legal entity has several accounting connections, so the request must say which one with `connectionId`. List them with `GET /v2/accounting/connections`. - `invalid_request (request shape)` — The body, query, or headers failed validation, or a required header is missing. `details` has one entry per failing location, keyed by JSON pointer or header name.
- `401`: - `unauthorized` — API key authentication is missing or invalid.
- `403`: - `forbidden (legal entity)` — The credential is not permitted to act for the selected legal entity. - `not_available` — Public API v2 is not yet available. Use [Public API v1](https://docs.slash.com/introduction) in the meantime. - `user_api_key_required` — The API key is scoped to a legal entity rather than a user. Every v2 request needs a user API key, created under Settings → API keys in the Slash dashboard, together with the `x-legal-entity` header.
- `404`: - `not_found` — No resource matches the identifier. When the identifier is a field of the request, `details` names that `field` and the `id` it received.
- `429`: The request exceeded the applicable rate limit. The response body is plain text, not the error object; clients must not depend on its wording.
- `500`: - `internal` — Slash could not complete the request. Quote `referenceId` when contacting Slash support.

## Changes

- **2026-10-16** `8b5d371ffeea`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/slashfi/apis/slash-public-api/changes/v2/accounting/mappings/get.md)

---

[API](https://skmtc.dev/slashfi/apis/slash-public-api.md) - [All operations](https://skmtc.dev/slashfi/apis/slash-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/slashfi/apis/slash-public-api/revisions/eaed2d63c9e2?raw)
