openapi: 3.1.0
info:
title: End Close Bank Account Balances Reconciliation Matches API
description: REST API is used to interact with the End Close platform.
license:
name: MIT
version: 1.0.0
servers:
- url: https://api.endclose.com/v1
security:
- ApiKeyAuth: []
tags:
- name: Reconciliation Matches
paths:
/reconciliation_matches:
get:
summary: List reconciliation matches
description: Returns a paginated list of matches, optionally filtered by reconciliation or status.
parameters:
- in: query
name: reconciliation_id
schema:
type: string
description: Filter by reconciliation
- in: query
name: status
schema:
type: string
description: Filter by match status
- in: query
name: limit
schema:
type: integer
minimum: 1
maximum: 100
default: 25
- in: query
name: offset
schema:
type: integer
description: Pagination offset
responses:
'200':
description: Paginated list of matches
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ReconciliationMatch'
has_more:
type: boolean
offset:
type: number
total_count:
type: integer
description: Total number of matches matching the filters, across all pages
tags:
- Reconciliation Matches
post:
summary: Create a reconciliation match
description: Manually match a set of records. All records must be unreconciled and belong to the specified reconciliation's data streams.
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- reconciliation_id
- record_ids
properties:
reconciliation_id:
type: string
record_ids:
type: array
items:
type: string
description: IDs of records to match together
create_adjustment:
type: boolean
description: If true, creates an adjustment record to balance the match
adjustment_reason:
type: string
description: Description for the adjustment record
responses:
'201':
description: Match created
content:
application/json:
schema:
$ref: '#/components/schemas/ReconciliationMatch'
'422':
description: Validation error (records not found, already reconciled, or not in reconciliation)
tags:
- Reconciliation Matches
/reconciliation_matches/{id}:
get:
summary: Retrieve a reconciliation match
parameters:
- in: path
name: id
required: true
schema:
type: string
responses:
'200':
description: Match retrieved
content:
application/json:
schema:
$ref: '#/components/schemas/ReconciliationMatch'
'404':
description: Match not found
tags:
- Reconciliation Matches
delete:
summary: Delete a reconciliation match
description: Deletes a reconciliation match and resets all associated records to unreconciled status.
parameters:
- in: path
name: id
required: true
schema:
type: string
responses:
'204':
description: Match deleted and records unreconciled
'404':
description: Match not found
tags:
- Reconciliation Matches
components:
schemas:
ReconciliationMatch:
type: object
description: A reconciliation match represents a group of records that have been matched together. Endclose supports many-to-one matching, so a single match can contain a large number of records — to retrieve them, use `GET /v1/records?reconciliation_match_id={id}`.
properties:
id:
type: integer
status:
type: string
group_key:
type: string
reconciliation_id:
type: integer
reconciliation_rule_id:
type: integer
created_at:
type: string
format: date-time
record_count:
type: integer
description: Total number of records in this match
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-KEY