@lerianstudio/matcher-mcp 5.0.0-beta.24 → 5.0.0-beta.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/spec/openapi.yaml
CHANGED
|
@@ -321,10 +321,15 @@ components:
|
|
|
321
321
|
additionalProperties: false
|
|
322
322
|
properties:
|
|
323
323
|
accountRef:
|
|
324
|
-
description: Stored opaque vendor account reference (Pluggy itemId, Belvo link id)
|
|
324
|
+
description: Stored opaque vendor account reference (Pluggy itemId, Belvo link id); empty while the connection is awaiting consent
|
|
325
325
|
examples:
|
|
326
326
|
- a1b2c3d4-5678-90ab-cdef-1234567890ab
|
|
327
327
|
type: string
|
|
328
|
+
awaitingConsent:
|
|
329
|
+
description: Whether the connection is still awaiting the end customer's vendor consent (no vendor item/link bound yet)
|
|
330
|
+
examples:
|
|
331
|
+
- false
|
|
332
|
+
type: boolean
|
|
328
333
|
baseUrl:
|
|
329
334
|
description: Stored vendor API base URL
|
|
330
335
|
examples:
|
|
@@ -342,7 +347,7 @@ components:
|
|
|
342
347
|
- a1b2c3d4-5678-90ab-cdef-1234567890ab
|
|
343
348
|
type: string
|
|
344
349
|
testable:
|
|
345
|
-
description: Whether Matcher can run a connectivity test for this connection
|
|
350
|
+
description: Whether Matcher can run a connectivity test for this connection right now (its vendor has a test path AND it is bound to a vendor item/link)
|
|
346
351
|
examples:
|
|
347
352
|
- true
|
|
348
353
|
type: boolean
|
|
@@ -361,6 +366,7 @@ components:
|
|
|
361
366
|
- baseUrl
|
|
362
367
|
- accountRef
|
|
363
368
|
- testable
|
|
369
|
+
- awaitingConsent
|
|
364
370
|
type: object
|
|
365
371
|
AggregatorConnectionListResponse:
|
|
366
372
|
additionalProperties: false
|
|
@@ -400,10 +406,9 @@ components:
|
|
|
400
406
|
additionalProperties: false
|
|
401
407
|
properties:
|
|
402
408
|
accountRef:
|
|
403
|
-
description: Opaque vendor account reference (Pluggy itemId, Belvo link id) the webhook pull threads onto its request
|
|
409
|
+
description: Opaque vendor account reference (Pluggy itemId, Belvo link id) the webhook pull threads onto its request. Omit to create a connection awaiting consent — the connect flow binds it after the end customer authorizes.
|
|
404
410
|
examples:
|
|
405
411
|
- a1b2c3d4-5678-90ab-cdef-1234567890ab
|
|
406
|
-
minLength: 1
|
|
407
412
|
type: string
|
|
408
413
|
baseUrl:
|
|
409
414
|
description: Vendor API base URL, stored as the connection host
|
|
@@ -438,7 +443,6 @@ components:
|
|
|
438
443
|
- vendor
|
|
439
444
|
- configName
|
|
440
445
|
- baseUrl
|
|
441
|
-
- accountRef
|
|
442
446
|
- clientId
|
|
443
447
|
- secret
|
|
444
448
|
type: object
|
|
@@ -446,10 +450,15 @@ components:
|
|
|
446
450
|
additionalProperties: false
|
|
447
451
|
properties:
|
|
448
452
|
accountRef:
|
|
449
|
-
description: Stored opaque vendor account reference (Pluggy itemId, Belvo link id)
|
|
453
|
+
description: Stored opaque vendor account reference (Pluggy itemId, Belvo link id); empty while the connection is awaiting consent
|
|
450
454
|
examples:
|
|
451
455
|
- a1b2c3d4-5678-90ab-cdef-1234567890ab
|
|
452
456
|
type: string
|
|
457
|
+
awaitingConsent:
|
|
458
|
+
description: Whether the connection is still awaiting the end customer's vendor consent (no vendor item/link bound yet)
|
|
459
|
+
examples:
|
|
460
|
+
- false
|
|
461
|
+
type: boolean
|
|
453
462
|
baseUrl:
|
|
454
463
|
description: Stored vendor API base URL
|
|
455
464
|
examples:
|
|
@@ -474,6 +483,52 @@ components:
|
|
|
474
483
|
- configName
|
|
475
484
|
- baseUrl
|
|
476
485
|
- accountRef
|
|
486
|
+
- awaitingConsent
|
|
487
|
+
type: object
|
|
488
|
+
AggregatorConsentTokenResponse:
|
|
489
|
+
additionalProperties: false
|
|
490
|
+
properties:
|
|
491
|
+
accountRef:
|
|
492
|
+
description: Vendor item/link id this token was scoped to (the stored binding); empty on a first consent. Pass it to the vendor widget's update mode alongside the token — do not substitute a locally cached value.
|
|
493
|
+
examples:
|
|
494
|
+
- a1b2c3d4-5678-90ab-cdef-1234567890ab
|
|
495
|
+
type: string
|
|
496
|
+
configName:
|
|
497
|
+
description: Config name of the connection the token was minted for
|
|
498
|
+
examples:
|
|
499
|
+
- pluggy-main
|
|
500
|
+
type: string
|
|
501
|
+
expiresAt:
|
|
502
|
+
description: UTC instant after which the vendor rejects this consent token
|
|
503
|
+
examples:
|
|
504
|
+
- "2026-08-23T12:30:00Z"
|
|
505
|
+
format: date-time
|
|
506
|
+
type: string
|
|
507
|
+
reconsent:
|
|
508
|
+
description: Whether the token re-authorizes the connection's existing vendor item/link (true) or will create a new one (false)
|
|
509
|
+
examples:
|
|
510
|
+
- false
|
|
511
|
+
type: boolean
|
|
512
|
+
token:
|
|
513
|
+
description: Short-lived, widget-ready consent token. Returned exactly once and never stored — pass it to the vendor widget and discard it.
|
|
514
|
+
examples:
|
|
515
|
+
- eyJhbGciOi...
|
|
516
|
+
type: string
|
|
517
|
+
vendor:
|
|
518
|
+
description: Aggregator vendor the consent token was minted against
|
|
519
|
+
enum:
|
|
520
|
+
- pluggy
|
|
521
|
+
- belvo
|
|
522
|
+
examples:
|
|
523
|
+
- pluggy
|
|
524
|
+
type: string
|
|
525
|
+
required:
|
|
526
|
+
- vendor
|
|
527
|
+
- configName
|
|
528
|
+
- token
|
|
529
|
+
- expiresAt
|
|
530
|
+
- reconsent
|
|
531
|
+
- accountRef
|
|
477
532
|
type: object
|
|
478
533
|
ApproveExtractionResponse:
|
|
479
534
|
additionalProperties: false
|
|
@@ -2613,11 +2668,12 @@ components:
|
|
|
2613
2668
|
additionalProperties: false
|
|
2614
2669
|
properties:
|
|
2615
2670
|
category:
|
|
2616
|
-
description: "Dispute category: BANK_FEE_ERROR (incorrect fee), UNRECOGNIZED_CHARGE, DUPLICATE_TRANSACTION, or OTHER"
|
|
2671
|
+
description: "Dispute category: BANK_FEE_ERROR (incorrect fee), UNRECOGNIZED_CHARGE, DUPLICATE_TRANSACTION, AMOUNT_MISMATCH, or OTHER"
|
|
2617
2672
|
enum:
|
|
2618
2673
|
- BANK_FEE_ERROR
|
|
2619
2674
|
- UNRECOGNIZED_CHARGE
|
|
2620
2675
|
- DUPLICATE_TRANSACTION
|
|
2676
|
+
- AMOUNT_MISMATCH
|
|
2621
2677
|
- OTHER
|
|
2622
2678
|
examples:
|
|
2623
2679
|
- BANK_FEE_ERROR
|
|
@@ -2875,10 +2931,11 @@ components:
|
|
|
2875
2931
|
- 550e8400-e29b-41d4-a716-446655440003
|
|
2876
2932
|
type: string
|
|
2877
2933
|
status:
|
|
2878
|
-
description: "Lifecycle status: OPEN (unhandled), ASSIGNED (owned by a user), RESOLVED (closed out)"
|
|
2934
|
+
description: "Lifecycle status: OPEN (unhandled), ASSIGNED (owned by a user), PENDING_RESOLUTION (a resolution is in flight), RESOLVED (closed out)"
|
|
2879
2935
|
enum:
|
|
2880
2936
|
- OPEN
|
|
2881
2937
|
- ASSIGNED
|
|
2938
|
+
- PENDING_RESOLUTION
|
|
2882
2939
|
- RESOLVED
|
|
2883
2940
|
examples:
|
|
2884
2941
|
- OPEN
|
|
@@ -6675,7 +6732,9 @@ components:
|
|
|
6675
6732
|
required:
|
|
6676
6733
|
- id
|
|
6677
6734
|
- status
|
|
6678
|
-
type:
|
|
6735
|
+
type:
|
|
6736
|
+
- object
|
|
6737
|
+
- "null"
|
|
6679
6738
|
SetupProgressMatchRulesResponse:
|
|
6680
6739
|
additionalProperties: false
|
|
6681
6740
|
properties:
|
|
@@ -6737,7 +6796,9 @@ components:
|
|
|
6737
6796
|
- method
|
|
6738
6797
|
- path
|
|
6739
6798
|
- requiredFields
|
|
6740
|
-
type:
|
|
6799
|
+
type:
|
|
6800
|
+
- object
|
|
6801
|
+
- "null"
|
|
6741
6802
|
SetupProgressReadinessResponse:
|
|
6742
6803
|
additionalProperties: false
|
|
6743
6804
|
properties:
|
|
@@ -7875,34 +7936,27 @@ components:
|
|
|
7875
7936
|
additionalProperties: false
|
|
7876
7937
|
properties:
|
|
7877
7938
|
accountRef:
|
|
7878
|
-
description: Opaque vendor account reference (Pluggy itemId, Belvo link id) the
|
|
7939
|
+
description: Opaque vendor account reference (Pluggy itemId, Belvo link id). Supply it to bind (or re-bind) the connection after the vendor's consent widget returns one; omit it to leave the stored value untouched.
|
|
7879
7940
|
examples:
|
|
7880
7941
|
- a1b2c3d4-5678-90ab-cdef-1234567890ab
|
|
7881
|
-
minLength: 1
|
|
7882
7942
|
type: string
|
|
7883
7943
|
baseUrl:
|
|
7884
|
-
description: Vendor API base URL, stored as the connection host
|
|
7944
|
+
description: Vendor API base URL, stored as the connection host. Omit it to leave the stored URL untouched.
|
|
7885
7945
|
examples:
|
|
7886
7946
|
- https://api.pluggy.ai
|
|
7887
7947
|
format: uri
|
|
7888
|
-
minLength: 1
|
|
7889
7948
|
type: string
|
|
7890
7949
|
clientId:
|
|
7891
7950
|
description: Aggregator API client id (optional; supply with secret to rotate, omit both to keep the stored credential; sealed; never emitted)
|
|
7892
7951
|
type: string
|
|
7893
7952
|
configName:
|
|
7894
|
-
description: Unique connection config name (tenant-scoped); the mint endpoint binds a token to this name
|
|
7953
|
+
description: Unique connection config name (tenant-scoped); the mint endpoint binds a token to this name. Omit it to leave the stored name untouched.
|
|
7895
7954
|
examples:
|
|
7896
7955
|
- pluggy-main
|
|
7897
|
-
minLength: 1
|
|
7898
7956
|
type: string
|
|
7899
7957
|
secret:
|
|
7900
7958
|
description: Aggregator API client secret (optional; supply with clientId to rotate, omit both to keep the stored credential; sealed; never emitted)
|
|
7901
7959
|
type: string
|
|
7902
|
-
required:
|
|
7903
|
-
- configName
|
|
7904
|
-
- baseUrl
|
|
7905
|
-
- accountRef
|
|
7906
7960
|
type: object
|
|
7907
7961
|
UpdateContextRequest:
|
|
7908
7962
|
additionalProperties: false
|
|
@@ -8488,6 +8542,8 @@ info:
|
|
|
8488
8542
|
POST, PUT and PATCH requests accept an optional `Idempotency-Key` header (`X-Idempotency-Key` is also honoured, and wins if both are sent). Keys are 1-128 characters of letters, digits, hyphen, underscore or colon, are scoped per tenant, caller, method and request target, and are strictly opt-in: a request sent without the header is never de-duplicated. A retry under a key whose first attempt completed replays that stored response and carries `Idempotency-Replayed: true`; a retry that arrives while the first attempt is still in flight is refused with 409.
|
|
8489
8543
|
|
|
8490
8544
|
A request that FAILED normally releases its key, so a caller can correct the cause and retry under the same key. The exception is a dispatch whose outcome could not be confirmed (502, code `MTCH-0514`): the exception may already have been created in the target system, so that answer HOLDS its key — every retry under it replays the same 502 and no second dispatch is sent. Deliberately attempting that dispatch again therefore requires a NEW idempotency key. A dispatch the target answered and rejected (502, code `MTCH-0513`) created nothing there and releases its key as usual.
|
|
8545
|
+
|
|
8546
|
+
Secret mints are the other, sharper exception. `POST /v1/discovery/aggregator-connections/{id}/connect-token`, `POST /v1/discovery/webhooks/tokens`, `POST /v1/exceptions/callbacks/credentials` and `POST /v1/exceptions/callbacks/credentials/{credentialId}/rotate` each return a raw credential exactly ONCE, and storing that answer would keep the secret re-readable for the life of the key — so those four routes IGNORE the idempotency header entirely. Nothing is stored, nothing is replayed, and `Idempotency-Replayed` is never sent on them. A retry under the same key MINTS AGAIN and leaves a second live credential behind, so treat a mint as non-idempotent: read the first attempt's response rather than resending it. A surplus callback credential can be revoked through its own operation; a surplus aggregator webhook token has no revoke operation today and stays live.
|
|
8491
8547
|
license:
|
|
8492
8548
|
name: Lerian Studio General License
|
|
8493
8549
|
title: Matcher Reconciliation API
|
|
@@ -10371,6 +10427,36 @@ paths:
|
|
|
10371
10427
|
summary: Update aggregator connection
|
|
10372
10428
|
tags:
|
|
10373
10429
|
- Discovery
|
|
10430
|
+
/v1/discovery/aggregator-connections/{id}/connect-token:
|
|
10431
|
+
post:
|
|
10432
|
+
description: "Mints the short-lived token the aggregator vendor's OWN consent widget (Pluggy Connect / the Belvo widget) consumes in the end customer's browser, using the connection's already-sealed credential. The token is returned exactly once: it is never persisted, never logged, and there is no endpoint that reads it back. Nothing is supplied in the request — the vendor is read off the stored connection, and the mode is derived from it: a connection already bound to a vendor item/link gets a RE-CONSENT token for that same item (`reconsent: true`, and `accountRef` echoes the exact item/link the token was scoped to), while a connection awaiting consent gets a first-consent token that mints a new one (`accountRef` empty). Pass the returned `accountRef` to the vendor widget's update mode rather than a locally cached value: the token is item-scoped, and pairing it with a stale id makes the vendor run the create flow and orphan the original item. The item/link id the widget returns is bound back through PUT /v1/discovery/aggregator-connections/{id} with `accountRef` (no credential needs re-supplying). A non-aggregator connection id returns 404; a vendor with no consent path on this deployment returns 422 MTCH-0213."
|
|
10433
|
+
operationId: mintAggregatorConsentToken
|
|
10434
|
+
parameters:
|
|
10435
|
+
- description: Opaque aggregator connection id
|
|
10436
|
+
in: path
|
|
10437
|
+
name: id
|
|
10438
|
+
required: true
|
|
10439
|
+
schema:
|
|
10440
|
+
description: Opaque aggregator connection id
|
|
10441
|
+
type: string
|
|
10442
|
+
responses:
|
|
10443
|
+
"201":
|
|
10444
|
+
content:
|
|
10445
|
+
application/json:
|
|
10446
|
+
schema:
|
|
10447
|
+
$ref: "#/components/schemas/AggregatorConsentTokenResponse"
|
|
10448
|
+
description: Created
|
|
10449
|
+
default:
|
|
10450
|
+
content:
|
|
10451
|
+
application/problem+json:
|
|
10452
|
+
schema:
|
|
10453
|
+
$ref: "#/components/schemas/Detail"
|
|
10454
|
+
description: Error
|
|
10455
|
+
security:
|
|
10456
|
+
- BearerAuth: []
|
|
10457
|
+
summary: Mint aggregator consent token
|
|
10458
|
+
tags:
|
|
10459
|
+
- Discovery
|
|
10374
10460
|
/v1/discovery/connections:
|
|
10375
10461
|
get:
|
|
10376
10462
|
description: Returns all discovered Fetcher database connections.
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
import { z } from 'zod';
|
|
11
11
|
import { dispatchException, EXCEPTIONS_PATH } from './shared.js';
|
|
12
12
|
/** Lifecycle states an exception can be filtered by (matcher's queue states). */
|
|
13
|
-
export const EXCEPTION_STATUSES = ['OPEN', 'ASSIGNED', 'RESOLVED'];
|
|
13
|
+
export const EXCEPTION_STATUSES = ['OPEN', 'ASSIGNED', 'PENDING_RESOLUTION', 'RESOLVED'];
|
|
14
14
|
/** Severity buckets an exception can be filtered by. */
|
|
15
15
|
export const EXCEPTION_SEVERITIES = ['LOW', 'MEDIUM', 'HIGH', 'CRITICAL'];
|
|
16
16
|
/** The reason an exception was raised (the matching defect that produced it). */
|
|
@@ -51,7 +51,7 @@ export const listExceptionsInputShape = {
|
|
|
51
51
|
status: z
|
|
52
52
|
.enum(EXCEPTION_STATUSES)
|
|
53
53
|
.optional()
|
|
54
|
-
.describe('Filter by lifecycle status (OPEN|ASSIGNED|RESOLVED).'),
|
|
54
|
+
.describe('Filter by lifecycle status (OPEN|ASSIGNED|PENDING_RESOLUTION|RESOLVED).'),
|
|
55
55
|
severity: z
|
|
56
56
|
.enum(EXCEPTION_SEVERITIES)
|
|
57
57
|
.optional()
|
|
@@ -159,7 +159,7 @@ export function buildListQuery(args) {
|
|
|
159
159
|
export function registerExceptionListTool(server) {
|
|
160
160
|
server.registerTool('exception_list', {
|
|
161
161
|
description: 'List reconciliation exceptions (cursor-paginated). Optional filters: ' +
|
|
162
|
-
'contextId (UUID — not a tenant field), status (OPEN|ASSIGNED|RESOLVED), ' +
|
|
162
|
+
'contextId (UUID — not a tenant field), status (OPEN|ASSIGNED|PENDING_RESOLUTION|RESOLVED), ' +
|
|
163
163
|
'severity (LOW|MEDIUM|HIGH|CRITICAL), reason (e.g. UNMATCHED, ' +
|
|
164
164
|
'FEE_VARIANCE), assigned_to, external_system, date_from/date_to (RFC ' +
|
|
165
165
|
'3339), plus sort_by/sort_order and limit (1–200)/cursor. The response ' +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/tools/exception/list.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,gFAAgF;AAChF,yEAAyE;AACzE,4EAA4E;AAC5E,gFAAgF;AAChF,4EAA4E;AAE5E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAKvB,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAEhE,iFAAiF;AACjF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/tools/exception/list.ts"],"names":[],"mappings":"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"}
|