Mercoa Transaction API
The Transaction API from Mercoa — 1 operation(s) for transaction.
The Transaction API from Mercoa — 1 operation(s) for transaction.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/mercoa:mercoa-transaction-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Reference Transaction API
version: 1.0.0
servers:
- url: https://api.mercoa.com
description: Production
tags:
- name: Transaction
paths:
/transactions/download:
get:
operationId: transaction_download
summary: Download Transactions (Sync)
description: Get a URL to download transactions as a CSV/JSON file.
tags:
- Transaction
parameters:
- name: format
in: query
description: Format of the file to download. Defaults to CSV.
required: false
schema:
$ref: '#/components/schemas/commons_BulkDownloadFormat'
- name: entityId
in: query
description: Filter transactions by the ID or foreign ID of the entity that created the transaction.
required: false
schema:
$ref: '#/components/schemas/entityTypes_EntityId'
- name: entityGroupId
in: query
description: Filter transactions by the ID or foreign ID of the entity group that the entity belongs to.
required: false
schema:
$ref: '#/components/schemas/entityGroupTypes_EntityGroupId'
- name: startDate
in: query
description: CREATED_AT Start date filter.
required: false
schema:
type: string
format: date-time
- name: endDate
in: query
description: CREATED_AT End date filter.
required: false
schema:
type: string
format: date-time
- name: limit
in: query
description: Number of transactions to return. Limit can range between 1 and 100, and the default is 10.
required: false
schema:
type: integer
- name: startingAfter
in: query
description: The ID of the transactions to start after. If not provided, the first page of transactions will be returned.
required: false
schema:
$ref: '#/components/schemas/transaction_TransactionId'
- name: search
in: query
description: Find transactions by vendor name, invoice number, check number, or amount. Partial matches are supported.
required: false
schema:
type: string
- name: metadata
in: query
description: Filter transactions by invoice metadata. Each filter will be applied as an AND condition. Duplicate keys will be ignored.
required: false
schema:
$ref: '#/components/schemas/invoiceTypes_MetadataFilter'
- name: lineItemMetadata
in: query
description: Filter transactions by invoice line item metadata. Each filter will be applied as an AND condition. Duplicate keys will be ignored.
required: false
schema:
$ref: '#/components/schemas/invoiceTypes_MetadataFilter'
- name: lineItemGlAccountId
in: query
description: Filter transactions by invoice line item GL account ID. Each filter will be applied as an OR condition. Duplicate keys will be ignored.
required: false
schema:
type: string
- name: payerId
in: query
description: Filter transactions by payer ID or payer foreign ID.
required: false
schema:
$ref: '#/components/schemas/entityTypes_EntityId'
- name: vendorId
in: query
description: Filter transactions by vendor ID or vendor foreign ID.
required: false
schema:
$ref: '#/components/schemas/entityTypes_EntityId'
- name: invoiceId
in: query
description: Filter transactions by invoice ID or invoice foreign ID.
required: false
schema:
$ref: '#/components/schemas/invoiceTypes_InvoiceId'
- name: transactionId
in: query
description: Filter transactions by transaction ID.
required: false
schema:
$ref: '#/components/schemas/transaction_TransactionId'
- name: status
in: query
description: Transaction status to filter on
required: false
schema:
$ref: '#/components/schemas/transaction_TransactionStatus'
- name: transactionType
in: query
description: Filter transactions by transaction type
required: false
schema:
$ref: '#/components/schemas/transaction_TransactionType'
- name: creatorUserId
in: query
description: Filter transactions by creator user ID. Does not work, do not use.
required: false
schema:
type: string
deprecated: true
responses:
'200':
description: Response with status 200
content:
application/json:
schema:
$ref: '#/components/schemas/commons_BulkDownloadResponse'
'400':
description: Error response with status 400
content:
application/json:
schema:
type: object
properties:
errorName:
type: string
enum:
- BadRequest
content:
type: string
required:
- errorName
- content
'401':
description: Error response with status 401
content:
application/json:
schema:
type: object
properties:
errorName:
type: string
enum:
- Unauthorized
content:
type: string
required:
- errorName
- content
'403':
description: Error response with status 403
content:
application/json:
schema:
type: object
properties:
errorName:
type: string
enum:
- Forbidden
content:
type: string
required:
- errorName
- content
'404':
description: Error response with status 404
content:
application/json:
schema:
type: object
properties:
errorName:
type: string
enum:
- NotFound
content:
type: string
required:
- errorName
- content
'409':
description: Error response with status 409
content:
application/json:
schema:
type: object
properties:
errorName:
type: string
enum:
- Conflict
content:
type: string
required:
- errorName
- content
'500':
description: Error response with status 500
content:
application/json:
schema:
type: object
properties:
errorName:
type: string
enum:
- InternalServerError
content:
type: string
required:
- errorName
- content
'501':
description: Error response with status 501
content:
application/json:
schema:
type: object
properties:
errorName:
type: string
enum:
- Unimplemented
content:
type: string
required:
- errorName
- content
security:
- default: []
components:
schemas:
commons_BulkDownloadResponse:
type: object
properties:
url:
type: string
mimeType:
type: string
required:
- url
- mimeType
title: BulkDownloadResponse
transaction_TransactionStatus:
type: string
enum:
- CREATED
- PENDING
- COMPLETED
- FAILED
- REVERSED
- QUEUED
- CANCELED
- RETURNED
title: TransactionStatus
entityGroupTypes_EntityGroupId:
type: string
title: EntityGroupId
transaction_TransactionId:
type: string
title: TransactionId
commons_BulkDownloadFormat:
type: string
enum:
- CSV
- JSON
title: BulkDownloadFormat
invoiceTypes_MetadataFilter:
type: object
properties:
key:
type: string
value:
$ref: '#/components/schemas/commons_StringOrStringArray'
description: If multiple values are provided, the filter will match if any of the values match (OR filter). To filter for the absence of a key, use the value 'NULL'. To filter for the presence of a key, use the value 'NOT NULL'.
required:
- key
- value
title: MetadataFilter
invoiceTypes_InvoiceId:
type: string
title: InvoiceId
entityTypes_EntityId:
type: string
title: EntityId
transaction_TransactionType:
type: string
enum:
- bankAccountToBankAccount
- bankAccountToMailedCheck
- bankAccountToPrintedCheck
- bankAccountToWallet
- cardToBankAccount
- cardToWallet
- walletToBankAccount
- walletToWallet
- custom
- offPlatform
title: TransactionType
commons_StringOrStringArray:
oneOf:
- type: string
- type: array
items:
type: string
title: StringOrStringArray
securitySchemes:
default:
type: http
scheme: bearer